Как добавить блок <script> после вызвавшего его создание родителя?
Привет!
Есть блок <script> в котором динамически создается еще один блок <script>:
<script>
(function() {
//...blahblah
s = d.getElementsByTagName('script')[0];
var g = document.createElement('script');
g.src = 'test.js';
s.parentNode.insertBefore(g, s);
})();
</script>
У меня в <HEAD> страницы, есть подключенный jQuery и скрипт "test.js" вставляется перед ним. А мне хочется, чтобы он вставлялся после (или перед) вызвавшим его блоком <script>:
<script>
// Здесь test.js
</script>
<script>
(function() {
//...blahblah
s = d.getElementsByTagName('script')[0];
var g = document.createElement('script');
g.src = 'test.js';
s.parentNode.insertBefore(g, s);
})();
</script>
<script>
// Или здесь test.js
</script>
Как это можно сделать? Поиграл с "this", не помогло. |
var head = document.getElementsByTagName('head')[0];
head.appendChild( g );
|
Цитата:
|
Все же интересно, как можно получить объект <script> из которого произошел вызов?
|
никак
|
Понял, спасибо!
|
Цитата:
|
Цитата:
Спасибо! |
Цитата:
var scripts = document.getElementsByTagName('script').
var thisScript = scripts[scripts.length - 1]; // Вот этот объект скрипта, в котором размещены эти строки
|
кстати немного странно. а почему this в самом скрипте не указывает на этот элемент скрипта ?
|
Цитата:
|
Цитата:
по мере загрузки страницы ... любой скрипт будет последним что ли? не понимаю |
melky, построение DOM дерева приостанавливается на время загрузки и выполнения скрипта.
|
Цитата:
Сейчас так:
s = document.getElementsByTagName('body')[0] || document.getElementsByTagName('script')[document.getElementsByTagName('script').length];
s.appendChild(...);
Главное, чтобы в случае отсутствия тега <BODY> на странице, свой тег <SCRIPT>, был записан в конце страницы. |
Цитата:
Теперь необязательно ставить свой блок <script> в конец страницы. |
Цитата:
|
Цитата:
думал, что есть, всё загружено, но ничего не отрисовывается |
ваый,
ну это тока на момент загрузки... а в процессе выполнения уже не прокатит |
Цитата:
|
| Часовой пояс GMT +3, время: 22:54. |