如何使用mootools阻止默认操作

时间:2009-10-20 11:23:19

标签: javascript javascript-events mootools

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
    <script language="JavaScript" src="mootools-1.2.3-core-nc.js"></script>
    <script language="JavaScript" src="mootools-1.2.3.1-more-nc.js"></script>
 </HEAD>
 <BODY id='body'>
 </BODY>
  <Script> 
  function onkeydown(e){
            alert(e.key);
            e.keyCode=0;   
                    e.stop();
            return   false;   

    }
  Event.Keys.F3 = 114;
  window.addEvent('domready', function() {
                    document.addEvent("keydown", this.onkeydown);
                                                                 }) ;
                </script>
</HTML>

当在ie8中打开它时,按 F3 ,搜索操作就会出现。为什么无法阻止它?

2 个答案:

答案 0 :(得分:1)

因为这是浏览器的默认操作,并且几乎没有一个好的借口来覆盖预期的行为。

有关在IE中禁用ALT-Enter的最新讨论,请参阅How can I disable Alt-Enter in IE?

答案 1 :(得分:1)

Internet Explorer以及大多数其他浏览器都会锁定JavaScript中F键的使用情况。出于显而易见的原因,禁止重新绑定这些密钥;如果我们允许重新绑定F5键,想象一下混乱!

技术答案是keydown和keyup事件在应用程序到达JS层之前被截获。正如您可以在事件中返回true或false以防止传播一样,应用程序会停止将keydown和keyup事件传播到其受信任域之外的脚本接口,例如。您只能在浏览器“添加”和“工具栏”中覆盖F3键,但不能覆盖网页内部。

简而言之:尝试重新绑定另一个密钥,F键不容易跨浏览器重新绑定。