我有一些代码可以在按键上运行一个功能:
document.onkeypress=function(e)
{
var e=window.event || e
var evtobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
if (unicode == 39)
{
Rotate();
}
}
function Rotate()
{
myDiv.setAttribute('style', '-moz-transform:rotate(' + rotationAmount + 'deg); -o-transform:rotate(' + rotationAmount + 'deg);-webkit-transform:rotate(' + rotationAmount + 'deg);-ms-transform:rotate(' + rotationAmount + 'deg)');
}
无论出于何种原因,密钥输入在Firefox中有效,但在Chrome中无效。当我在Chrome中按某个键时,没有任何反应。我知道Rotate()函数在Chrome中有效,因为如果我在不同条件下调用它,它运行没有问题。
答案 0 :(得分:1)
您好像正在检测右箭头键。对于此和任何其他不可打印的击键,您应该使用keydown
事件,并使用keyCode
属性,该属性适用于所有主流浏览器。您还可以简化事件代码:
document.onkeydown = function(e)
{
e = e || window.event;
if (e.keyCode == 39)
{
Rotate();
}
};