Javascript 防止IE9中的默认密钥处理
我想禁用一些默认的浏览器键(CTRL+F、ALT+ENTER),因为它们在我的应用程序场景中没有意义。到目前为止,我读到的是,在IE9中禁用这些事件最重要的一件事是在这种情况下将keyCode设置为0,但是在执行此操作时,我总是会收到一个“拒绝访问”错误 这是我的代码:Javascript 防止IE9中的默认密钥处理,javascript,internet-explorer,keyboard,internet-explorer-9,Javascript,Internet Explorer,Keyboard,Internet Explorer 9,我想禁用一些默认的浏览器键(CTRL+F、ALT+ENTER),因为它们在我的应用程序场景中没有意义。到目前为止,我读到的是,在IE9中禁用这些事件最重要的一件事是在这种情况下将keyCode设置为0,但是在执行此操作时,我总是会收到一个“拒绝访问”错误 这是我的代码: var fnOnKeyDown = function(event) { if(!event) { event = window.event; } if(event.preventDefault) {
var fnOnKeyDown = function(event)
{
if(!event)
{
event = window.event;
}
if(event.preventDefault)
{
event.preventDefault();
}
event.returnValue = false;
event.cancelBubble = true;
event.keyCode = 0;
return false;
};
window.document.onkeydown = fnOnKeyDown;
如前所述,line event.keyCode=0抛出错误“拒绝访问”。当我删除它或将它放入一个空的try/catch块时,它不会抛出错误,但默认的浏览器键处理不再被抑制。你确定不是指ie7吗?我在ie9中似乎没有问题 无论如何,这里有一篇微软关于你的文章 要解决此问题,请更改分配 属性,使其不会更改值。这个 代码中的更改允许您使用SHIFT键或CTRL键加载 本地磁盘上的页面 或者,您可以将网页托管在Web服务器上。这使得 确保脚本中的event.keyCode属性正确运行
另外,如果可能的话,我建议使用jquery。像这样的框架通常通过一个公共界面为您处理各种浏览器问题。
event.preventDefault()
和event.stopPropagation()
应该足够了,您不需要更改事件本身的任何属性。我不是Windows。这些也不能通过?;在使用jQuery时,这也可能是足智多谋的;是否尝试在事件对象中使用元键?win和mac之间有区别