2

不管我做什么,这个页面根本不起作用。我希望它专注于加载时的输入框。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Home Screen</title>
<style type="text/css">
input {border:0px;}
input:focus {outline:none;}
</style>
</head>
<body onload="document.getElementById("search").focus()">
<input id="search" />
</body>
</html>

我知道我用这段代码打破了一堆规则,所以你不需要说什么。

编辑:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Home Screen</title>
<style type="text/css">
input {border:0px;}
input:focus {outline:none;}
</style>
</head>
<body onload="document.getElementById('search').focus()">
<input id="search" onblur="setTimeout(document.getElementById('search').focus(),10)" />
</body>
</html>

编辑2:

<script type="text/javascript">
function refocus()
{
setTimeout(document.getElementById("search").focus(),10);
}
</script>

<input id="search" onblur="refocus()" />
4

6 回答 6

4

双引号不能包含双引号,不仅在javascript中,任何其他语言都是一样的。

<body onload="document.getElementById('search').focus()">
于 2013-03-28T01:22:47.197 回答
2

如果您使用的是 jquery:

$(function() {
  $("#search").focus();
});

或原型:

Event.observe(window, 'load', function() {
  $("search").focus();
});

或纯javascript:

window.onload = function() {
  document.getElementById("search").focus();
};

它的可读性比内联事件“更好”......

于 2013-03-28T01:16:38.657 回答
0

您必须放入search单引号:

<body onload="document.getElementById('search').focus()">
于 2013-03-28T01:15:34.900 回答
0

将搜索放在单引号中,因为 document.getelementbyid 周围有双引号

 <body onload="document.getElementById('search').focus()">
于 2013-03-28T01:16:43.370 回答
0

您遇到此问题是因为您在 onfocus 事件中使用了相同的引号,您可以更改"search"'search'解决此问题。

<body onload="document.getElementById('search').focus()">

理想情况下,您应该在 JavaScript 中附加您的事件,以便您的标记保持清晰,并且页面的所有功能方面都位于一个位置。

jsFiddle

<script type="text/javascript">
    window.onload = function () {
        document.getElementById("search").focus();
    }
</script>
于 2013-03-28T01:17:43.550 回答
0

使用 setTimeout 函数在代码中设置一些延迟来解决此问题。

function fireOnClick() {
    // Set text filed focus after some delay
    setTimeout(function() { jQuery('#globalText').focus() }, 20);
    // Do your work.....
}
于 2015-09-10T07:47:11.923 回答