为什么onload焦点在此脚本上不起作用?

| 这是我表格的样本。当页面加载时,焦点必须放在\'fbox \'上,但是它的工作量很大,我不明白为什么。表单包含一个niceditor,但我不认为这是问题
<html>
<head></head>
<body onload=\"document.form.fbox.focus();\">
<body>
<form method=\'post\' action=\'\' name=\'form\' >
Headline <input name=\'fbox\' type=\'text\' class=\'form\' id=\'box\' autocomplete=\'off\' size=\'80\'><br>
Your text</font><br><script type=\"text/javascript\" src=\"nicEdit.js\"></script><script type=\"text/javascript\">bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });</script>
<textarea name=\"description\" style=\"width: 100%; height:200px;\"></textarea></p>     
<p><select name=\'catg\' >
<option value=\'\' selected >Select category</option>
</select>
<input type=\"submit\" id=\'button\' name=\"Submit\" value=\"Submit\" class=\"button\"></form>
</body></html>
谢谢     
已邀请:
您有两个身体标签。我建议摆脱其中之一,看看是否有帮助。 该代码中间还有一个杂散的closing1ѭ标签。许多人试图排列它们的标记,以便于阅读和查看文档的结构。您可能想探索这种做法。 另一种可能性是您的\“ nicEdit \”插件正在撤消\“。focus()\”调用。尝试将其取出并查看焦点是否起作用(作为实验)。如果发生这种情况,那么您可以在nicEdit代码完成后执行您的“ focus()\”调用:
bkLib.onDomLoaded(function() {
  nicEditors.allTextAreas();
  document.form.fbox.focus();
});
(这是对您现有的“ 3”块中代码的改编。)     
您有两个身体元素。那行不通。 脚本从上到下运行,因此您要在呈现页面的其余部分之前触发“ onload”。事件触发时,您尝试关注的元素可能不存在。 有多种方法可以解决此问题。 jQuery有一个方便的方法,可以等待DOM准备就绪。 一种简单的方法就是简单地从页面底部的脚本块中运行脚本。
<script type=\"text/javascript\">
document.form.fbox.focus()
</script>
    

要回复问题请先登录注册