-3

解決策が見つからない、一見単純な問題があります。次のコードがあるとします。

<html>
    <head>
        <script type="text/javascript">
            document.onkeypress = function(ev) {
                if (!ev) { alert("Broken"); return; }
                var key = ev.charCode || ev.keyCode;
                alert(key);
            }
        </script>
    </head>
    <body>Test</body>
</html>

ファイルとして保存してIEにロードし、キーを押すと、常に「壊れた」アラートが表示されますが、Firefoxでは正常に機能します(キーコードでアラート)。

ドキュメント ハンドラの代わりに使用window.onkeypressすると、IE ではまったく呼び出されません。イベントにハンドラーをアタッチしてonloadも、違いはありません。keydownorのようなイベントを使用しkeyupても違いはありません (IE ではまだ壊れています)。

それでも、例として jsfiddleを使用すると、IE で正常に動作します。

では、上記のコードと jsfiddle の違いは何ですか? IE で動作させるにはどうすればよいですか?

4

3 に答える 3