繁体   English   中英

如何使用 mootools 阻止默认操作

[英]How to prevent the default action with 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 ,搜索动作来了。 为什么我阻止不了?

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

请参阅如何在 IE 中禁用 Alt-Enter? 最近关于在 IE 中禁用 ALT-Enter 的讨论。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM