[英]Prevent default key handling in IE9
我想禁用一些默認的瀏覽器鍵(CTRL + F,ALT + ENTER),因為它們在我的應用程序場景中沒有意義。 到目前為止我所讀到的最重要的事情是在IE9中禁用這些事件是在這種情況下將keyCode設置為0,但是當我這樣做時,我總是得到一個“拒絕訪問”錯誤。
這是我的代碼:
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;
如上所述,行event.keyCode = 0拋出錯誤“拒絕訪問”。 當我刪除它或將其放入一個空的try / catch塊時,它不會拋出錯誤,但不再抑制默認的瀏覽器鍵處理。
你確定你不是說ie7嗎? 我在ie9中似乎沒有問題......
無論如何,這是一篇關於你的問題的微軟帖子
http://support.microsoft.com/kb/934364
若要解決此問題,請更改分配event.keyCode屬性的代碼,以便它不會更改該值。 代碼中的更改允許您使用SHIFT鍵或CTRL鍵從本地磁盤加載頁面
或者,您可以在Web服務器上托管Web頁面。 這可確保腳本中的event.keyCode屬性正確運行。
另外,如果可能的話,我會建議使用jquery。 像這樣的框架通常通過一個通用接口為您處理各種瀏覽器問題。
event.preventDefault()
和event.stopPropagation()
應該足夠了 - 您不需要更改事件本身的任何屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.