Firefox pop-under

Firefox pop-under

本文关键字:pop-under Firefox      更新时间:2023-09-26

我有一个简单的页面:

<html>
<head>
  <script type="text/javascript">
    function popUnder() {
      var adv = window.open('http://google.com', '_blank', 'status = 1, height = 600, width = 600, resizable = 1');
      adv.blur();
      window.focus();
    }
</head>
<body onclick="javascript: popUnder();">
...
</body>
</html>

但是pop-under在Firefox 9中不起作用。在此页面上https://bug369306.bugzilla.mozilla.org/attachment.cgi?id=296123当dom.disable_window_flip==true时,所有窗口都是弹出窗口。什么是最简单和正确的方法来创建流行内裤?或者它没有在Firefox中用window.open创建pop-unders的解决方案?

这种行为是在Firefox 4中引入的。

此解决方法:https://gist.github.com/1021924仍然在FF10中工作。

所以我实际上已经破解了一些在Firefox中运行的东西。我不得不说,这是非常快和非常丑陋的,但我认为我从来没有给出一个好的(甚至体面的)答案,所以不妨试着开始。:另外,我应该声明,我在提交表格时触发弹出窗口,但如果你愿意,你可以在页面加载时触发它。我在里面放了一些boolean,以确保它不会不止一次弹出。如果有人想清理我的代码并展示一个更直接的解决方案(即没有多个布尔值/函数和setTimeout),我相信我们都会很感激。

var submitted = false;
var redir = false;
function do_window_location() {
    if(submitted == false) {
        $('form').submit();
        submitted = true;
    }
    window.location = 'http://www.google.com';
}
function call_window_location() {
    if(redir == false) {
        setTimeout('do_window_location()', 100);
        redir = true;
    }
}
$('document').ready(function() {
    $('form').submit(function() {
        if(submitted == false) {
            call_window_location();
            $(this).submit();
            submitted = true;
        }
    });
    return true;
});

希望这能在某种程度上帮助到别人。