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 に答える