2015-12-14 2 views
0

сценарий не выполняет, если я помещаю его в тег заголовка, но отлично работает, если я помещаю его в тег тела. Может кто-нибудь сказать мне причину этого? вот мой кодсценарий сценария не работает в теге заголовка

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Untitled 1</title> 
</head> 

<body> 
<p id="demo"></p> 

<script> 
document.getElementById("demo").innerHTML = Date(); 
</script> 


</body> 

</html> 

ответ

2

Это потому, что HTML разобран сверху донизу. Это означает, что при попытке получить элемент demo он еще не создан.

Чтобы заставить его работать в головы теге вы должны добавить слушателя, который будет срабатывать, когда страница полностью загружена.

document.addEventListener("DOMContentLoaded", function() { 
    // Here the DOM elements are loaded, and you can get them with .getElementById. 
    document.getElementById("demo").innerHTML = Date(); 
}); 
+0

спасибо за помощь romain !! Я ценю вашу доброту – john

0

<head> для включения других файлов и библиотек, и такие (вы можете также включить их в организме). Но если вы хотите написать JS-код для управления телом, вы должны поместить его в тело.

+1

Это не обязательно правильно. Вполне разумно писать JS в голове, но вам нужно знать жизненный цикл страницы. Любой JS, написанный в голове, будет проанализирован до того, как тело начнет загружаться, поэтому любые инструкции JS, ссылающиеся на элементы тела, будут терпеть неудачу/выдавать ошибку (если только они не находятся в функциях, которые только что определены, но не вызваны из раздела главы. управление, получение внешних ресурсов, запрос клиентской среды и т. д., все действительные JS будут включены в голову. :) – Sk93

+0

ok !! Получил это благодарность! – john