1

これが私のコードです:

<html>
<head>
<title>My Game Title Goes Here!</title>
<script type="text/javascript">
function startGame(){
    document.getElementById("2").innerHTML = ('Testing!');
}
document.body.onload = keyListener(){
    document.getElementById("1").onkeypress = startGame;
}
</script>
</head>
<body>
<div class="title" name="Game Title" id="0">Game Title</div>
<div tabindex="0" class="gamecontainer" name="Game Container" id="1">
Press any key to start.
</div>
<div class="gamemonitor" name="Game Monitor" id="2">
Game Monitor:
</div>
</body>
</html>

期待どおりに動作しません(Google Chromeを使用しています)。

次のように、直接実行した場合にのみ機能します。

<div tabindex="0" class="gamecontainer" name="Game Container" id="1" onkeypress="document.getElementById('2').innerHTML = ('Testing!')">
Press any key to start.
</div>
<div class="gamemonitor" name="Game Monitor" id="2">
Game Monitor:
</div>

コードを何度もチェックしましたが、タイプミスなどの明らかな間違いは見つかりませんでした。それが問題であるならば、あなたの時間を無駄にして申し訳ありませんが、これは本当に私を悩ませています。

4

5 に答える 5

2

要素IDは数字で始めることはできません。これは、ほぼ間違いなく、ここでの問題の原因になっています。HTMLとJSの両方のIDを文字で始まるように変更します。

第二に、keyListener行はおそらく次のようになります。

window.onload = function(){
    document.getElementById("newId").onkeypress = startGame;
}
于 2012-06-07T15:22:09.380 に答える
1

変化 :

document.body.onload = keyListener(){
    document.getElementById("1").onkeypress = startGame;
}

に:

document.body.onload = function(){
    document.getElementById("1").onkeypress = startGame;
}

また、id無効なHTMLであるため、数字で始めることはできません。
Chromeはこの間違いを克服しているようですが、使用すべきではありません。

そして、コードを<body>タグに移動するか、使用が。window.onload
document.bodyの上に存在しません<body>

于 2012-06-07T15:24:05.537 に答える
1

document.bodyonloadプロパティがありません。window.onload代わりにすべきです。

window.onload = function(){
    document.getElementById("1").onkeypress = startGame;
}

デモ:http://jsfiddle.net/9khng/

于 2012-06-07T15:27:52.477 に答える
0

「onkeypress」属性を修正してみてください。あなたの引用はめちゃくちゃです。

onkeypress="document.getElementById('2').innerHTML = ('Testing!')"
于 2012-06-07T15:25:22.247 に答える
0

IDは数字で始めることはできないと思います。

于 2012-06-07T15:22:48.750 に答える