0

我有一些代码可以在按键上运行功能:

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 中工作,因为如果我在不同的条件下调用它,它运行没有问题。

4

1 回答 1

1

您似乎正在检测右箭头键。对于这个和任何其他不可打印的击键,您应该使用该keydown事件并只使用该keyCode属性,该属性适用于所有主要浏览器。您还可以简化事件代码:

document.onkeydown = function(e)
{
    e = e || window.event;
    if (e.keyCode == 39)
    {
         Rotate();
    }
};
于 2012-04-10T23:01:22.817 回答