Firefox pop-under

时间:2012-01-20 15:28:18

标签: javascript firefox

我有一个简单的页面:

<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时,所有窗口都是弹出窗口。 创建pop-unders的最简单正确的方法是什么?或者,没有使用window.open在Firefox中创建pop-unders的解决方案?

2 个答案:

答案 0 :(得分:2)

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

workaroundhttps://gist.github.com/1021924仍可在FF10中使用。

答案 1 :(得分:-1)

所以我实际上已经砍掉了并且在Firefox中得到了一些有点的东西。我不得不说这是非常快和非常丑陋,但我不认为我曾经在这里给出了一个好的(甚至是体面的)答案,所以不妨试着开始。 :P也,我应该声明我在提交表单时触发弹出,但如果你愿意,你可以在页面加载时触发它。我在那里有布尔,以确保它不会不止一次弹出。如果有人想清理我的代码并显示更直接的解决方案(即没有多个布尔/函数和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;
});

希望这能以某种方式帮助某人。