如何在IE9中启用javascript window.focus()

时间:2012-10-11 09:49:01

标签: javascript html

我用过:

var win = window.open('http://www.google.co.uk','foo');

打开一个新窗口我然后导航回原始窗口,打开并使用新窗口:

win.focus();

我希望浏览器切换回foo窗口IE9如何忽略它并保持在当前窗口。在Chrome和IE6中工作我假设这可能已被禁用作为安全风险。有没有办法通过安全设置或注册表设置在IE9中启用window.focus?

这是我的完整代码:

<a onclick="OpenWindow();">Click here to open a window</a><br />
<a onclick="SelectWindow();">click here to switch to window</a>

<script language="javascript" type="text/javascript">

var win;

function OpenWindow() {
    win = window.open("http://www.google.co.uk", "foo");
}

function SelectWindow() {
    win.focus();
}

</script>

2 个答案:

答案 0 :(得分:1)

Internet Explorer 9 中的已知错误。查看文章A web page may fail to get focus in Windows Internet Explorer 9了解更多信息。

注册表修复

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\
Type: REG_DWORD
Name: HangRecovery
Value: 0

答案 1 :(得分:0)

自2003年以来,以下各种浏览器对我有所帮助:

function popupHelp(helpUrl) {
    helpWin = window.open(helpUrl, "help",
            "height=500,width=500,scrollbars,resizable,toolbar,status,menubar");
    if (helpWin != null) {
        setTimeout("helpWin.focus()",100);
    }
}

...

<a href="javascript:popupHelp('help.jsp')">Help</a>

截至2013-08-27,它似乎是window.open()调用的功能列表,强制/允许IE 8,9和10第二次给窗口焦点。我说窗口因为它也强制IE在窗口中打开,而不是标签(Chrome使用标签,Firefox就像IE一样)。我希望所有浏览器在这方面都像Chrome一样。他们似乎都打开了一个新的窗口,目标=“_ blank”就好了,用打开的窗口弄乱了用户桌面,但重用现有窗口是他们不想做的事情。