繁体   English   中英

窗口弹出窗口-如何使window.blur()或window.focus()在FireFox 4中工作?

[英]Window popups - how to get window.blur() or window.focus() to work in FireFox 4?

我知道FF4不允许使用window.blur()除非在FF配置中启用了“升高或降低窗口”设置。 它简单地忽略了该事件。

我知道,即使关闭了此设置,某些站点仍可以设法打开一个弹出窗口并保持对当前窗口的关注。 他们如何实现这一目标?

此外,当两个页面位于同一域时,我不明白为什么.blur()和.focus()不起作用。 根据http://support.mozilla.com/zh-CN/questions/806756#answer-167267,这应该可以正常工作。

在默认设置( JSFiddle )下,这在Firefox和Chrome中对我有效

function popUnder(url, width, height) {
    var popUnderWin, nav = navigator.userAgent,
        isGecko = /rv:[2-9]/.exec(nav),
        hackString;

    hackString = nav.indexOf('Chrome') > -1 ? "scrollbar=yes" : "toolbar=0,statusbar=1,resizable=1,scrollbars=0,menubar=0,location=1,directories=0";

    popUnderWin = window.open("about:blank", "title", hackString + ",height=" + height + ",width=" + width);

    if (isGecko) {
        popUnderWin.window.open("about:blank").close();
    }

    popUnderWin.document.location.href = url;

    setTimeout(window.focus);
    window.focus();
    popUnderWin.blur();
}

document.getElementById("asd").addEventListener("click", function() {
    popUnder("http://www.google.com", 1024, 768);
}, false);
<div id="asd">click here</div>

没有window.open额外额外参数,我无法设法使它正常工作,因此它们有些不足。

http://support.mozilla.com/zh-CN/questions/806756#answer-167267

他们说,除非所有人都去about:config并将dom.disable_window_flip设置为false否则这是不可能的。

我不知道有任何代码可以绕过此限制,但我认为其他网站使用的不是window.blur()window.focus()

还有一个类似的文章在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM