解決策が見つからない、一見単純な問題があります。次のコードがあるとします。
<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
も、違いはありません。keydown
orのようなイベントを使用しkeyup
ても違いはありません (IE ではまだ壊れています)。
それでも、例として jsfiddleを使用すると、IE で正常に動作します。
では、上記のコードと jsfiddle の違いは何ですか? IE で動作させるにはどうすればよいですか?