<!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 ,搜索操作就会出现。为什么无法阻止它?
答案 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键不容易跨浏览器重新绑定。