2015-01-08 8 views
8

Почему я получаю ошибку в браузере?ТипError: 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

Смежные вопросы