WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Operaの event.keyCode値が正常に取れない?

0:[投稿] ht [2007/01/23 00:44 ] [環境:IE6, Firefox, Opera9, Netscape7 linux]

Operaで event.keyCode を取ろうとすると、"."(ピリオド) が 46 で返ってきます。
また、deleteも同じ 46 で返ってきます(>_<)。

IE6, Netscape7, Firefox だと"."は 190 が返ってきます。deleteは 46 です。

OperaがIE等々とは違う値になって返って来るのですが、これに対応する解決方法はあるのでしょうか?

以下のコードで確認しました。
-------------------------------
<script>
function test(e){
    document.getElementById("div").innerHTML =
        "keyCode=" + (window.event || e).keyCode;
}
</script>
<input type="text" onkeydown="test(event)" />
<div id="div"></div>
-------------------------------

よろしくお願いします。


1:[回答] もん [2007/01/24 00:35 ]

ふと、
>        "keyCode=" + (window.event || e).keyCode;
って、window.eventがnullだと、e.keyCodeになるのですか?
(true).keyCodeってなったりしないものなんでしょうか…。

>OperaがIE等々とは違う値になって返って来るのですが、これに対応する解決方法はあるのでしょうか?
userAgentで普通に判定しては?



2:[回答] ティルド [2007/01/25 23:36 ]

>>2
var a = false, b = "hogeB"; alert(a || b);
結果 → hogeB

var a = "hogeA", b = "hogeB"; alert(a || b);
結果 → hogeA

var a = "hogeA", b = false; alert(a || b);
結果 → hogeA

var a = false, b = false; alert(a || b);
結果 → false


という使い方ができます。


3:[回答] もん [2007/02/02 02:13 ]

>>2
すごい!

>>0
割り込んで、すいません。


[戻る]