2014-09-20 108 views
1

假設我們有這樣的代碼:event.altKey鉻無法正常工作和IE

<html><head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 

<script type="text/javascript"> 
var p = 0; 

function reset() 
{ 
    // some efforts 
} 

function code(e) { 
    e = e || window.event; 
    return(e.keyCode || e.which); 
} 
window.onload = function(){ 
    document.onkeypress = function(e){ 
    var key = code(e);  
    if(key == 38 || key == 40) 
    {} 
    else if(e.altKey) 
    { 
     alert('altkey pressed'); 
    } 
    else 
    { 
     // Another THING! 
    } 
    }; 
}; 
</script> 

</head> 
<body style="padding:30px; font-size:30px;font-family: Courier;"> 
<span onclick="reset();" accesskey="r"></span> 
</body> 
</html> 

在Firefox的偉大工程,但不是在IE瀏覽器的。
當我將alt更改爲shift時,它適用於所有瀏覽器。但正如你可能會注意到,我想用這個快捷鍵,我覺得這是在Chrome和IE Alt鍵關鍵的問題(因爲兩者都使用Alt鍵accesskey屬性,但Firefox使用Alt鍵 + 如mentally here)。
那麼你們建議我做什麼?

回答

1

您無法在chrome上檢測到alt按鈕,因爲它啓用了窗口菜單,因此您的頁面會失去焦點並且不會調用「keypress」事件。另一方面,事件「keydown」被調用,所以你可以毫無問題地使用它。

+0

keyup對我更好。不管怎樣,謝謝。 – UltraDEVV 2014-09-20 19:37:09