有没有一种方法可以检测到按下Alt键的哪一侧,即区分左Alt键还是右Alt键?我在某处看到IE可以通过altLeft
对象的altRight
和Event
属性来实现。如果正确,我们如何在Firefox中使用JavaScript进行检测?
这就是IE中altLeft
的工作方式:
window.onload = function(){
document.getElementById('id').onkeydown = function(){
alert(window.event.altLeft);
}
}
最佳答案
2015年答案
DOM3添加了 location
property of keyboard events(另请参见MDN)(较早的版本具有keyLocation
属性),该功能可以满足您的要求,并且已在所有主要浏览器的最新版本中实现。
演示:
document.getElementById("ta").addEventListener("keydown", function(e) {
var keyLocation = ["Standard", "Left", "Right", "Numpad", "Mobile", "Joystick"][e.location];
var message = "Key '" + (e.key || e.keyIdentifier || e.keyCode) + "' is down. Location: " + keyLocation;
this.value += "\n" + message;
e.preventDefault();
}, false);
<textarea id="ta" rows="10" cols="50">Click on here and press some modifier keys such as Shift</textarea>
2011年答案
不能。通常,不可能以跨浏览器的方式来区分左右修饰键。
shiftLeft
的shiftRight
,ctrlLeft
,ctrlRight
,altLeft
,altRight
,window.event
属性均为IE,并且在其他浏览器中不存在。DOM3添加了
location
property of keyboard events(早期版本则具有keyLocation
属性),但Firefox并未实现。