我有一个简单的页面:
<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在火狐9中不起作用。当dom.disable_window_flip ==为真时,在这个页面上https://bug369306.bugzilla.mozilla.org/attachment.cgi?id=296123所有的窗口都是弹出的。创建弹出窗口最简单、最正确的方法是什么?还是没有用window.open在火狐中创建弹出窗口的解决方案?
发布于 2012-02-17 23:39:53
此行为是在Firefox4中引入的。
这个workaround:https://gist.github.com/1021924仍然可以在FF10中工作。
发布于 2012-02-09 05:36:58
因此,我实际上已经在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;
});希望这能以某种方式帮助某些人。
https://stackoverflow.com/questions/8943766
复制相似问题