使用JS防止站点刷新

时间:2012-07-20 05:10:58

标签: javascript browser

有些网站使用一些JS魔法来获得令人讨厌的自动刷新质量。这似乎绕过了浏览器的“不自动刷新”选项。

我的问题 - 是否有一种简单的方式告诉浏览器(也通过JS,在附加组件中)“不要听它们!永远不要自动刷新!”?

编辑:只是为了让自己清楚 - 我想编写一个浏览器扩展,阻止当前页面发出“刷新”信号 - 无论是自动刷新还是使用某个计时器页面自动刷新的“标准”刷新。我认为这是一个标准的JS问题......

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

编辑:抱歉,我误解了这个问题!

我认为你需要的是:

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

当窗口将收到按键事件时,键盘指示信号表明必须防止默认行为。如果返回false,则会停止事件链,阻止执行任何操作。这两行具有相同的效果,试着评论每一行。

这是一个改进的例子:

<!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>

答案 2 :(得分:-1)

每个浏览器都可以使用此功能turned off但我认为除非您编写“扩展程序”,否则无法通过JS影响这些更改。