Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как добавить блок <script> после вызвавшего его создание родителя? (https://javascript.ru/forum/events/20993-kak-dobavit-blok-script-posle-vyzvavshego-ego-sozdanie-roditelya.html)

ваый 25.08.2011 12:45

Цитата:

Сообщение от PeaceCoder
кстати немного странно. а почему this в самом скрипте не указывает на этот элемент скрипта ?

Потому что this должен указывать на глобальный объект. Script - всего лишь рядовой DOM элемент, не привилегированный, с какой стати на него указывать.

melky 25.08.2011 12:49

Цитата:

Сообщение от ваый (Сообщение 122335)
Элементарно.
var scripts = document.getElementsByTagName('script').
var thisScript = scripts[scripts.length - 1]; // Вот этот объект скрипта, в котором размещены эти строки

почему вы думаете. что текущий скрипт - последний ?

по мере загрузки страницы ... любой скрипт будет последним что ли?

не понимаю

B@rmaley.e><e 25.08.2011 12:51

melky, построение DOM дерева приостанавливается на время загрузки и выполнения скрипта.

Kotakota 25.08.2011 12:54

Цитата:

Сообщение от ваый (Сообщение 122335)
Элементарно.
var scripts = document.getElementsByTagName('script').
var thisScript = scripts[scripts.length - 1]; // Вот этот объект скрипта, в котором размещены эти строки

Ну я примерно и пришел к такому варианту.
Сейчас так:
s = document.getElementsByTagName('body')[0] || document.getElementsByTagName('script')[document.getElementsByTagName('script').length];
s.appendChild(...);


Главное, чтобы в случае отсутствия тега <BODY> на странице, свой тег <SCRIPT>, был записан в конце страницы.

Kotakota 25.08.2011 13:01

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 122346)
melky, построение DOM дерева приостанавливается на время загрузки и выполнения скрипта.

Интересно!
Теперь необязательно ставить свой блок <script> в конец страницы.

ваый 25.08.2011 13:07

Цитата:

Сообщение от melky
почему вы думаете. что текущий скрипт - последний ?

по мере загрузки страницы ... любой скрипт будет последним что ли?

не понимаю

Именно. Код, который внутри тэга скрипт при загрузке тотчас же выполняется. Это значит, что на момент выполнения кода внутри script, текущий тэг script гарантированно последний. На этом и основан этот прием.

melky 25.08.2011 14:07

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 122346)
melky, построение DOM дерева приостанавливается на время загрузки и выполнения скрипта.

знал, что приостанавливается, но не знал, что к моменту исполнения скрипта дальше этого скрипта ничего нет.

думал, что есть, всё загружено, но ничего не отрисовывается

devote 25.08.2011 17:38

ваый,
ну это тока на момент загрузки... а в процессе выполнения уже не прокатит

ваый 25.08.2011 18:05

Цитата:

Сообщение от devote
ну это тока на момент загрузки... а в процессе выполнения уже не прокатит

Разумеется. Но мы может присвоить этот объект script переменной (в момент загрузки), которая будет указывать на него и после загрузки страницы.


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