我有一個onbeforeunload事件處理程序附加到頁面,每次頁面重新載入/獲取重定向時執行。取消onbeforeunload事件處理程序?
window.onbeforeunload = function() {
console.log("do something");}
我不希望腳本在測試期間運行。我想在我自己的測試環境中禁用它。
有沒有辦法解除這個onbeforeunload事件?我使用JavaScript,jQuery作爲框架,所以jQuery中的答案會很好。
我有一個onbeforeunload事件處理程序附加到頁面,每次頁面重新載入/獲取重定向時執行。取消onbeforeunload事件處理程序?
window.onbeforeunload = function() {
console.log("do something");}
我不希望腳本在測試期間運行。我想在我自己的測試環境中禁用它。
有沒有辦法解除這個onbeforeunload事件?我使用JavaScript,jQuery作爲框架,所以jQuery中的答案會很好。
在javascript函數中可以被覆蓋。您可以簡單地爲其指定一個新目的:
window.onbeforeunload = function() {
// blank function do nothing
}
這將完全覆蓋現有版本window.onbeforeunload
。
注意:爲什麼不簡單地首先刪除設置此函數的代碼行?或者,如果你不能,你將不得不在設置這個空白功能後,以確保它不被重寫
與此問題沒有直接關係(請不要因爲這個問題downvote ),但可以幫助別人不過,這是我在角1.x和打字稿使用:
this.$window.onbeforeunload =() => null;
的jQuery≥1.7
使用jQuery 1.7以後的事件API已經更新,.bind()/ .unbind()仍然可用於向後兼容,但首選的方法是使用on()/ off()函數。下面現在是,
$('#myimage').click(function() { return false; }); // Adds another click event
$('#myimage').off('click');
$('#myimage').on('click.mynamespace', function() { /* Do stuff */ });
$('#myimage').off('click.mynamespace');
這完美地在我們的AJAX函數裏面碰到了同樣的問題。 +1 – Ligemer 2013-07-03 04:59:03
或'window.onbeforeunload = null;' – 2015-06-01 13:35:16