2011-02-13 114 views
4

我想阻止第三方腳本改變window.location和/或用Javascript重新加載當前頁面。有沒有辦法監視位置更改或窗口重新加載事件並取消它們。我無法控制JavaScript庫,因此我需要在關鍵操作期間臨時阻止頁面重新加載。我不想阻止用戶重新加載頁面,只是其他腳本。歡迎jQuery解決方案。如何防止腳本更改window.location或在當前頁面上重新加載?

謝謝!

編輯:該解決方案只需要在Firefox中工作。

+0

如果您不信任腳本,您可能不應該包含它。否則,它可以監視用戶,提醒信息,加載其他第三方腳本等等。 – Kobi 2011-02-13 08:01:42

+0

@Kobi - 我相信它只是喜歡在不合時宜的時間刷新頁面的腳本,就像我的腳本所做的ajax調用或ajaxed文件上傳一樣。 – 2011-02-13 08:09:34

回答

2

爲防止reload()你可以做這樣的事情:

var canReload = true; 
var realReload = window.reload; 
window.reload = function() { 
    if (canReload) { 
    realReload(); 
    } 
} 

基本上覆蓋reload功能,用自己的。我不確定可以使用屬性分配完成相同的操作(其中設置了window.location)。您可以查看Firefox的自定義getter/setter(__defineSetter__)函數,併爲windowlocation屬性創建一個setter。

相關問題