2015-01-08 5 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

관련 문제