2015-01-08 19 views
8

ブラウザでエラーが発生するのはなぜですか?TypeError:document.body is null

TypeError: document.body is null

コードはJSfiddleでうまくいきます。

HTML

<head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <script src="jsscript.js"></script> 
</head> 
<body> 
</body> 

JS

var creElem = document.createElement("p"); 
creElem.innerHTML = "Hellow World"; 
creElem.setAttribute("id", "id_name"); 
document.body.appendChild(creElem); 
+1

JSFiddleは、スクリプトを実行します。 (左パネルの "onLoad") – iForests

答えて

10

ときDOM負荷コードを実行します。ロジックをDOMContentLoadedのイベントリスナーにラップします。

document.addEventListener('DOMContentLoaded', function() { 
    // ... 
}); 

JSFiddleで動作した理由は、JSがロード時に実行されるためです(JSFiddleのデフォルトオプション)。


また、あなたが実行するロジックを必要とするときに応じて、あなたも使用できます。

window.addEventListener('load', function() { 
    // ... 
}); 

参照:ページがロードされた後Difference between DOMContentLoaded and Load events