Javascript 将焦点设置为Safari中警报后的文本框

Javascript 将焦点设置为Safari中警报后的文本框,javascript,safari,Javascript,Safari,我试图在显示消息后将焦点返回到文本框。如以下代码所示: <input type="text" id="text1" /> <input type="submit" id="submit1" onclick="alert('test');document.getElementById('text1').focus();return false;" /> 它在Safari不起作用。我的Windows版本是4.0.5。这对我来说也不起作用,我怀疑这与Safari不愿意在丢

我试图在显示消息后将焦点返回到文本框。如以下代码所示:

<input type="text" id="text1" />
<input type="submit" id="submit1" onclick="alert('test');document.getElementById('text1').focus();return false;" />


它在Safari不起作用。我的Windows版本是4.0.5。

这对我来说也不起作用,我怀疑这与Safari不愿意在丢失窗口焦点后声明整体窗口焦点有关。不过,这只是一个理论,因为我对Safari的内部结构一无所知,但我很确定它根本不支持
window.focus()
。因此,我的想法是浏览器窗口认为它不是聚焦窗口,因此它忽略了任何聚焦任何东西的尝试

我已经通过这个测试页面证实了这个理论:

如果单击此处的“单击我”按钮,然后关闭警报弹出窗口,然后立即单击浏览器窗口上的任意位置(而不是文本框),则几秒钟后文本框将获得焦点