Javascript 在Firefox中未将焦点设置为文本字段
我面临一个非常有趣的问题。 我正在尝试使用Javascript(没有jQuery,我也尝试过,但没有成功)使用Javascript 在Firefox中未将焦点设置为文本字段,javascript,html,firefox,dom-events,Javascript,Html,Firefox,Dom Events,我面临一个非常有趣的问题。 我正在尝试使用Javascript(没有jQuery,我也尝试过,但没有成功)使用window.onLoad在输入字段上设置焦点 看看这把小提琴: 它在chrome浏览器中工作正常,但在Firefox中却不行。Firefox有什么问题吗?我怎样才能解决它 编辑: 以下是我在html文件中复制的代码: <!DOCTYPE html> <html> <head> <title></title&g
window.onLoad在输入字段上设置焦点
看看这把小提琴:
它在chrome浏览器中工作正常,但在Firefox中却不行。Firefox有什么问题吗?我怎样才能解决它
编辑:
以下是我在html文件中复制的代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function onloadFocus(){
var name = document.getElementById('name');
// name.value='window.onload called';
name.focus();
}
window.onload=onloadFocus();
</script>
</head>
<body>
<div><input type='text' value='' id='name' name='name'></div>
</body>
</html>
函数onloadFocus(){
var name=document.getElementById('name');
//name.value='window.onload调用';
name.focus();
}
window.onload=onloadFocus();
尝试添加一点延迟:
function onloadFocus(){
setTimeout(function() {
document.getElementById('name').focus()
}, 10);
}
必须将函数调用包装到函数中,否则将立即调用它,而不是onLoad(此时输入仍然未知):
您应该使用window.onload=onloadFocus代码>而不是window.onload=onload focus()代码>因为在窗口的情况下。onload=onload focus()
onloadFocus将立即运行,此时输入字段可能不可用
我找到了解决办法。如果你想专注于Firefox。在脚本标记的开始处编写focus函数
<script type="text/javascript">
document.getElementById('name').focus();
// rest of the code here.
</script>
document.getElementById('name').focus();
//剩下的代码在这里。
希望这会对您有所帮助。jsfiddle稍后将焦点设置在javascript框架上,尝试独立页面,它运行良好:@Dr.Molle>它在页面上不起作用:(@ravi)他已经给出了示例及其工作原理,我也使用了许多示例places@GyanChandra Srivastava>我也尝试了查看链接,但当我在html页面中复制fiddel时,它工作正常。当我们不知道页面上发生了什么时,我们无法解决问题。我猜window.onload在某个地方被覆盖,请使用addEventListener()相反。如果我点击run in fiddle issue issue issue same>我将其添加到了我的原始html文件中,并且成功了,谢谢。我能知道为什么firefox没有设置focus吗?这是一个bug吗???@Ravi我真的不确定,可能是因为您安装了扩展,导致DOM加载延迟,从而传递了任何自定义脚本。试试getti正在清除Firebug并检查脚本错误。当我打开fiddle时,它会显示“聚焦于”字段,但当再次单击“运行”时,会出现相同的问题:(@Ravi在这种情况下,你不应该相信jsfiddle的结果。因为jsfiddle可能包含自己的焦点代码。我通过创建一个简单的html页面来测试你的代码,它工作得很好。>但是它在chrome中工作得很好?我想知道firefox有什么问题?@Dr.Molle>它在示例html中工作得很好,但在我的项目页面中没有.Terric的伎俩在那里奏效了…你能告诉我实际问题是什么吗。我在谷歌上搜索了许多面临相同问题的开发人员。我怎么能告诉你为什么我不知道它(你的项目页面)时它不起作用?
<script type="text/javascript">
document.getElementById('name').focus();
// rest of the code here.
</script>