2013-12-19 12 views
7

エラーを取得し続けます。「Uncaught TypeError:このプログラムをChromeで実行しようとすると、ヌルのプロパティ 'innerHTML'を設定できません。私は今私が間違っていることはしません、そして、どんな助けも認められるでしょう。負荷にウィンドウのエラー:キャッチしたTypeError:ヌルのプロパティ 'innerHTML'を設定できません。

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<script> 
    var x = "hey"; 
    var counter = 1; 
    var button = document.getElementById("button"); 
    var div = document.getElementById("box"); 
    var text = document.getElementById("text"); 
    var sound = document.getElementById("sound"); 
    var array=[ "thanks for clicking", "keep on clicking", "click one more time", "why do you keep on clicking me?", "stop clicking me!"]; 
function thing(file){ 
    var y = array[Math.floor(Math.random() * array.length)]; 
     if (x == y){ 
      while (y == x){ 
       var y = array[Math.floor(Math.random() * array.length)]; 
     } 
     } 
    form1.text.value=y; 

    x = y; 
sound.innerHTML = "<embed src=\""+file+"\"hidden=\"true\"autostart=\"true\" loop=\"false\"/>"; 

} 
</script> 
</head> 
<body> 
<form name="form1"> 
<input type="button" id="button" value="click" onClick="thing('sound.mp3')" /> 
    <input type="text" id="text" value="hey" /> 
</form> 
<div id="sound"> 
<p> 
</p> 
</div> 
</body> 
</html> 
+4

あなたのスクリプトは ''が読み込まれる前に実行されています。したがって、アクセスしようとする要素は存在せず、 'getElementById'は' null'を返します。 – 0x499602D2

答えて

38

待ち:

window.onload = function() 
{ 
    //yourJSCodeHERE 
} 

または</body>タグの後にあなたのJSを移動します。

+0

ありがとう!私はJSを自分のdivの後に移動し、それは働いた! –

+1

htmlが読み込まれた後で具体的にコードスニペットが機能する場合は、タグの末尾の直前にjsコードを置くことができます。Googleアナリティクスが同じことを依頼する方法と似ています。 –

関連する問題