我有一个简单的页面:
<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的解决方案?
答案 0 :(得分:2)
这种行为是在Firefox 4中引入的。
此workaround:https://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;
});
希望这能以某种方式帮助某人。