Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Странный вывод скрипта (https://javascript.ru/forum/misc/26239-strannyjj-vyvod-skripta.html)

udav 01.03.2012 23:31

Странный вывод скрипта
 
Все мпривет.
Имеется такой простой документ
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
    <script>
        var element = document.createElement("script");
        element.innerHTML = "window.alert(document.body.innerHTML);";
        document.body.appendChild(element);
    </script>
</body>
</html>

Почему window.alert(document.body.innerHTML); выдает html текст тэга body с двумя элементами <script>? Ведь я еще не вставил element в документ.
Или второй скрипт исполняется в другое время? Тогда когда исполняется динамически вставленый скрипт?

dmitriymar 01.03.2012 23:53

Цитата:

Сообщение от udav
innerHTML

innerHtml -сразу изменяет dom.
Содержимое тега -текстовый узел.

udav 02.03.2012 09:12

Цитата:

Сообщение от dmitriymar (Сообщение 160850)
innerHtml -сразу изменяет dom.
Содержимое тега -текстовый узел.

Не, когда я делаю element.innertHTML = "<b>text</b>", текст парсится и строится DOM-поддерево. После присвоения будет такое дерево:
[HTMLElement] element -> [HTMLElement] b -> [TEXTElement] text

udav 02.03.2012 09:13

Судя по всему, браузер исполняет скрипт, когда я вставляю новый узел в дерево.
document.body.appendChild(element);


Часовой пояс GMT +3, время: 11:30.