2013-05-08 30 views
0

我嘗試使用window.open打開一個新的窗口,在點擊事件的事件處理程序:window.open失去click事件處理控制在Firefox

var onButtonClick = function() { 
    alert('start'); 
    window.open('http://www.google.com', 'goog', 'width=800,height=400'); 
    alert('done'); 
}; 
var element = document.getElementById("button"); 
element.addEventListener('click', onButtonClick); 

http://jsfiddle.net/eGNpe/

我期望一個警告說「開始」,一個警告說「結束」,並打開一個窗口。 這適用於linux上的Chrome,但是在Ubunutu上的Firefox 20.0上,我只收到第一個警報,提示window.open方法中的某處,控件丟失。

如果這是一個彈出式窗口攔截器問題,我希望有一些通知,彈出窗口被阻止,並且window.open應該返回null並繼續拋出第二個警報。

任何想法?我是否濫用事件處理程序或window.open方法?

+0

在Firefox上,在Ubuntu上,我同時彈出兩個彈出窗口。嘗試移動Google窗口。 – Pointy 2013-05-08 13:44:34

+0

是的,我不明白爲什麼這不起作用。顯然,事件處理程序是可以的(否則你不會得到第一個提醒),並且window.open很難被破壞......奇怪!您是否在控制檯中收到任何錯誤消息? – 2013-05-08 13:45:55

+0

在我的機器上,我在控制檯上什麼也沒有,只有第一個警報,沒有彈出窗口。我剛剛試過在全新的Firefox配置文件中運行它,並且它工作正常,所以這可能是由於我安裝了一些擴展或配置不正確。 – 2013-05-08 13:48:15

回答

0

禁用所有Firefox擴展後,上面的代碼按預期工作。這個問題可能特定於我自己的機器和配置。