我試圖實現一個彈出式(bootstrap模式樣式),當web訪問者離開我的網站時會觸發。刪除eventlistener for beforeunload
我嘗試不同的選擇:
$(window).bind('beforeunload', function(){
$("#sModal").modal('show');
return 'Take our survey before you leave.';
});
但是,它並沒有在FF,而工作在IE瀏覽器工作正常。我還遇到另一個問題,就是在整個頁面被加載時,所有瀏覽器類型的「你想離開還是停留」警告顯示在我的網站本身上的任何鏈接上。
我解決此得到通過我的所有錨標籤循環並增加了點擊監聽,使用去除beforeunload聽衆:
window.onload = function() {
var allLinks = document.getElementsByTagName('a');
for (var i = 0; i < allLinks.length; i++) {
allLinks[i].addEventListener("click", removeBeforeUnload, false);
}
};
的removeBeforeUnload功能只是用
$(window).unbind('beforeunload');
再回到實際上使popoup/modal出現在所有瀏覽器上,我在文檔完成加載之後使用了此計算器答案中的代碼:
window.onbeforeunload and window.onunload is not working in Firefox , Safari , Opera?
此解決方案在所有瀏覽器中都很好用,但是現在我無法在本地點擊鏈接上解除此事件!我什麼都試過
window.removeEventlistener('beforeunload',null,false);
window.removeEventlistener('onbeforeunload',null,false);
window.removeBeforeUnload();
window.onbeforeunload = null;
我希望你能指出我在正確的方向,並解釋爲什麼我不能拆散這種情況下,我從計算器answer.Thanks使用!
雖然我恨你使用unload事件模式多,這是一個很好的問題因爲我遇到了同樣的問題,試圖在瀏覽器上捕獲關閉事件而不捕獲刷新,回來等。 –
@SterlingArcher謝謝!我希望我能解決這個問題,因爲我處在桌子舞臺上的砰砰聲!我不知道爲什麼事件聽衆沒有被註銷!? – mmokh
我會建議堅持使用jQuery風格的'bind/unbind'(實際上這些應該是jQuery的更新版本中的'on/off'),或純DOM風格的'addEventListener/removeEventListener'語義。結合兩個導致瘋狂:)。 –