2012-07-20 85 views
1

一些網站使用一些JS魔法具有惱人的自動刷新質量。這似乎繞過了瀏覽器的「不自動刷新」選項。防止網站刷新使用JS

我的問題 - 是否有一種簡單的方式告訴瀏覽器(也通過JS,在附加組件中)「不要聽他們!永遠不會自動刷新!」?

編輯:只是爲了讓自己清楚 - 我想寫一個瀏覽器擴展,防止當前頁面發出「刷新」信號 - 無論自動刷新還是標準刷新由頁面使用某些定時器自動給定。我認爲這是一個標準的JS問題...

+0

這將是超級用戶或類似的網站一個更好的問題。 – btown 2012-07-20 05:29:09

回答

0

編輯:對不起,我誤解了這個問題!

我認爲你需要的是這樣的:

window.onkeypress = window.onkeyup = window.onkeydown = function(event) { 
    event.preventDefault(); 
    // or, in this case: 
    //return false; 
}; 

當窗口會收到必須防止默認行爲按鍵的事件,KEYUPēKEYDOWN信號。如果您返回false,您將停止事件鏈,阻止執行任何操作。這兩條線具有相同的效果,請嘗試評論每一行。

這裏是一個improoved例如:

<!DOCTYPE html> 
<html> 

    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Testing...</title> 
    </head> 
    <body> 
     <div id="clickDiv">Click me ;)</div> 
     <br/> 
     <input id="typeInput" value="Type something ! (here)"/> 
    </body> 

    <script type="text/javascript"> 
      window.onkeypress = window.onkeyup = window.onkeydown = function(event) { 
       event.preventDefault(); 
       return false; 
      }; 
      document.getElementById("clickDiv").onclick = function(event) { 
       console.log("you clicked me and the window events related to the keyboard are still being prevented ;)"); 
      }; 
      document.getElementById("typeInput").onkeyup = function(event) { 
       console.log("you typed inside me and the window events related to the keyboard are still being prevented ;)"); 
      }; 
    </script> 

</html> 
+0

從某種意義上說,這是一個「覆蓋」(就像在C++中重載一個+運算符) - 我沒有看到它將如何防止「自動刷新」。得到的代碼:)? – 2012-07-20 05:49:09

+0

@DaneBalia:我錯過了這個問題......對不起。 – davidbuzatto 2012-07-20 05:51:28

0

除Chrome和Safari之外,所有流行的瀏覽器都有與禁用自動刷新相關的選項。要禁用自動刷新在這些瀏覽器,看看這篇文章:http://maketecheasier.com/disable-web-page-auto-refresh-for-various-browsers/2010/12/12

對於Chrome擴展程序,停止自動刷新,檢查了這一點:https://chrome.google.com/webstore/detail/lcldcllmbokpbniijpnkpgoboadbfphb

+0

我已經閱讀過第一個鏈接。問題在於,它不適用於某些基於JS的自動刷新(它不是「純粹的」自動刷新;只是JS告訴瀏覽器刷新)。 – 2012-07-20 05:34:50

-1

每個瀏覽器都可以有這個功能turned off但我不認爲有一種方法可以通過JS來影響這些變化,除非你寫了一個「Extension」。

+1

Chrome和Safari沒有關閉此功能的選項。 – jeff 2012-07-20 05:28:03

+1

正確!這會讓你感到困惑,我看到你在我面前回答。 – 2012-07-20 05:44:53