簡體   English   中英

防止IE9中的默認密鑰處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM