2012-10-01 107 views
0

我們在IE中使用此代碼分配新的鍵碼的onkeypress事件事件:我可以在chrome中更改事件的keyCode屬性嗎?

window.event.keyCode=65 

在IE中,這改變鏈中的其他事件處理程序,接收到密鑰,但是這個代碼不工作鉻。有沒有辦法做到這一點?

示例HTML:

<input type="text" name="hotelfloornew" id="hotelfloornew" 
     onkeypress="uPPer();" size="25" /> 

通訊JS:

function uPPer() 
{ 
    switch (window.event.keyCode) 
    {  
     case 97:window.event.keyCode=65;break; 
     case 98:window.event.keyCode=66;break; 
     case 99:window.event.keyCode=67;break; 
     case 100:window.event.keyCode=68;break; 
. 
. 
. 

    } 
} 
+0

[在谷歌瀏覽器中改變javascript中的KeyCode]的可能重複(http://stackoverflow.com/questions/15404807/change-keycode-in-javascript-in-google-chrome) – KyleMit

回答

1

更改一個事件的keyCode屬性是一個糟糕的黑客,只能在舊的IE中工作。它應該是隻讀的,並且在所有合理的瀏覽器中。不要這樣做。

如果您需要更改按鍵的效果,請阻止其默認操作並手動執行您自己的替換操作。如果您想將輸入的字符映射到其他字符,you can use code I've published before on Stack Overflow

3

IE分配一個全球性的活動值,但是這並不歸。在其他瀏覽器中,使用提供給您的回調值:

window.onkeypress = function(event) { 
    console.log(event.keyCode); 
} 
0
function doKey(e) { 
     evt = e || window.event; // compliant with ie6   
     alert(evt.keyCode+' Pressed'); 
    } 

window.event.keyCode主要是爲IE瀏覽器...這是個例代碼,將提醒所有導航按下鍵代碼。

相關問題