2012-01-20 23 views
1

我有一个简单的页面:的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> 

但弹出下在Firefox 9 没有作品在此页面https://bug369306.bugzilla.mozilla.org/attachment.cgi?id=296123所有窗口都是弹出窗口时dom.disable_window_flip ==真。 什么是最简单和正确的方式来创建弹出式下拉?或者用window.open在Firefox中创建弹出窗口并不是解决方案?

+1

这是2012年,而不是1999年。Pop-Unders被认为是不好的,你为什么这样做? – epascarello

+2

*“但弹出式下不适用于Firefox 9”* **好!! ** ;-)为了避免跳到结论,什么是用例? (例如,为什么你需要创建一个pop-under?)我想不出一个好的,但这并不意味着没有一个。 –

+0

:)这是客户的心血来潮。 –

回答

-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; 
}); 

希望通过某种方式帮助某人。