1

我用过:

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>
4

2 回答 2

1

这是Internet Explorer 9中的一个已知错误。查看文章,网页可能无法在 Windows Internet Explorer 9 中获得焦点以了解更多信息。

注册表修复

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\
Type: REG_DWORD
Name: HangRecovery
Value: 0
于 2012-10-11T09:53:49.033 回答
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 年 8 月 27 日,它似乎是 window.open() 调用上的功能列表,它强制/允许 IE 8、9 和 10 第二次给予窗口焦点。我说窗口是因为它还强制 IE 在窗口中打开,而不是在选项卡中打开(Chrome 使用选项卡,Firefox 像 IE 一样工作)。我希望所有浏览器在这方面都能像 Chrome 一样工作。他们似乎都用 target="_blank" 打开一个新窗口就好了,打开的窗口使用户桌面混乱,但重用现有窗口是他们不想做的事情。

于 2013-08-26T23:34:12.257 回答