处理按键时阻止IE刷新

时间:2009-06-15 12:28:08

标签: javascript internet-explorer browser

如果在脚本中在页面中处理 Ctrl-R ,如何防止IE刷新?这也适用于打开浏览器历史记录等。解决方案不需要在非IE浏览器中工作,但它必须在IE 6和IE 7中都有效。

这甚至可能吗?

2 个答案:

答案 0 :(得分:2)

我不认为那是可能的,我想也不应该这样。

我看起来我必须重新考虑......

使用this librarydownload link)我可以实现您的目标。

示例代码。但图书馆能够做得更多。

<html>
    <head>
        <title>asd</title>
        <script type="text/javascript" src="shortcut.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            shortcut.add("Ctrl+R",function() {
                alert("Don't reload");
            });
        </script>
    </body>
</html>

答案 1 :(得分:1)

试试这个:

<html>
<head>
<script>
function preventStuff () {
   var e = window.event;
   if(e.ctrlKey) {
     switch(e.keyCode) {
     case 82 :
       document.body.innerHTML += "<p>Window refresh prevented.</p>";
       e.returnValue = false;
       break;
     case 72 :
       document.body.innerHTML += "<p>Browser history prevented.</p>";
       e.returnValue = false;
       break;
     }
   }
}
</script>
</head>
<body onkeydown="preventStuff()">
</body>
</html>

“82”是“R”的keyCode,“72”是“H”的keyCode。为要捕获的每个键添加一个类似的开关盒。

在IE6和IE7上测试过。