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 でイベントをアタッチして、マークアップを明確に保ち、​​ページのすべての機能面を 1 か所に配置する必要があります。

jsフィドル

<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 に答える