我有,當我試圖檢查其不斷自動刷新每3-5秒一個有趣的網頁的源代碼(這可能是由於一些js腳本),它每次頁面刷新時重置我檢查元素 Inspector窗口的問題。如何阻止頁面自動刷新?
除了打開NoScript以阻止頁面自動刷新以外,是否有其他方式阻止該頁面刷新,或者檢查器窗口可能不會重置本身?
我有,當我試圖檢查其不斷自動刷新每3-5秒一個有趣的網頁的源代碼(這可能是由於一些js腳本),它每次頁面刷新時重置我檢查元素 Inspector窗口的問題。如何阻止頁面自動刷新?
除了打開NoScript以阻止頁面自動刷新以外,是否有其他方式阻止該頁面刷新,或者檢查器窗口可能不會重置本身?
當頁面仍在加載時,您可以按Esc鍵。在頁面仍然是白色的時候,按下它。當您在此時停止加載頁面時,通常會停止所有自動加載的JavaScript。在動作上運行的任何腳本通常不受影響。每個頁面都不同,嘗試不同的時間。
當我使用了一個名爲NovelUpdates存在的JavaScript,可以使隱藏的某些元素的網站,當我在頁面加載按Esc鍵都將頁面加載後隱藏的元素是可見的。然後,當我點擊一個可以執行沒有問題的JavaScript的按鈕時。 NoScript不會解決您的問題,我相信。
另一個例子是那些惱人的盒子在10秒後彈出,表示你不是一個成員,不能在沒有登錄的情況下查看這個網站,就像一些新聞文章網站一樣。
通常我只是開DevTools,到相應的面板如果有必要,請點擊暫停。
開幕DevTools:通過菜單,或按F12,按Ctrl + Shift + I,或爲Cmd + Shift + I取決於瀏覽器和操作系統。
切換面板:從DevTools頂部的選項卡中選取面板。它將被稱爲「調試器」(Firefox,IE)或「來源」(Chrome)或類似的。
暫停:在調試器/信號源面板中,單擊暫停按鈕(通常看起來像電視遙控器上的暫停按鈕,||
),或按等效鍵盤。鍵盤當量是
Brilliant 。簡單,簡單。適用於Chrome,Firefox,IE11。 –
針對此問題的最普遍的解決方案是捕獲beforeunload
事件。瀏覽器會要求用戶確認離開頁面。代碼最簡單的形式如下所示:
window.onbeforeunload = function() { return true }
您可以在控制檯中輸入此代碼。或者,您可以簡單地將以下網址粘貼到瀏覽器地址欄(不需要控制檯)。你甚至可以收藏它。
javascript:window.onbeforeunload = function() { return true }
注意,當你將其粘貼地址欄中的現代瀏覽器都可能砍掉javascript:
部分;確保你輸入回來。
要確定在Firefox中的重定向的原因,請嘗試以下操作:
打開Web開發工具(CTRL + SHIFT + I),打開 「工具箱選項」,勾選「啓用持久性日誌「選項。這會使日誌在頁面加載中持續存在(否則將清除日誌)。
現在切換到「網絡監視器」選項卡。
打開URL並讓它刷新。
在網絡監視器>原因欄內,您會發現頁面重新加載的原因。
原因列是很含糊器(Chrome做了很多更好作業)。但是,如果使用JavaScript來觸發頁面(重新)加載,那麼它至少會顯示該腳本的文件名和行號。
'onbeforeunload'技巧僅適用於頁面刷新不在頁面內循環時,例如,它會阻止:'setTimeout(function ){location.reload();},1000);'但不是這個:'setInterval(function(){location.reload();},1000);'在第二種情況下,它會一直要求您取消一遍又一遍。:-)(好主意,但。) –
你可以做的是使用命令exit(),這相當於在PHP中死亡,並簡單地停止腳本。 如果您不知道是什麼原因造成的,並且您不想查找「壞孩子」,那麼您最好停止頁面底部的整個腳本。
會[此](https://stackoverflow.com/questions/3527041/prevent-any-form-of-page-refresh-using-jquery-javascript)有幫助嗎?不知道您是否可以通過這種方式實際防止軟件觸發刷新。我嘗試過修補'location.reload',但是我猜如果它存儲在閉包中,它將不起作用。 –
你用過調試器嗎?然後開始調試你的代碼。 – fruitjs
你可以嘗試在本地保存網頁文件,並去尋找違規的js離線,繞過它,然後檢查。有點粗糙,但可能工作? – ne1410s