Javascript 在Firefox中未将焦点设置为文本字段

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

我面临一个非常有趣的问题。 我正在尝试使用Javascript(没有jQuery,我也尝试过,但没有成功)使用
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>