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)

Kotakota 25.08.2011 08:17

Как добавить блок <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", не помогло.

devote 25.08.2011 08:31

var head = document.getElementsByTagName('head')[0];
head.appendChild( g );

Kotakota 25.08.2011 08:36

Цитата:

Сообщение от devote (Сообщение 122296)
var head = document.getElementsByTagName('head')[0];
head.appendChild( g );

Радикально! ;)

Kotakota 25.08.2011 08:38

Все же интересно, как можно получить объект <script> из которого произошел вызов?

devote 25.08.2011 08:43

никак

Kotakota 25.08.2011 08:46

Понял, спасибо!

melky 25.08.2011 09:40

Цитата:

Сообщение от Kotakota (Сообщение 122300)
Все же интересно, как можно получить объект <script> из которого произошел вызов?

пройтись по всем скриптам и сравнить src.

Kotakota 25.08.2011 12:12

Цитата:

Сообщение от melky (Сообщение 122311)
пройтись по всем скриптам и сравнить src.

Как вариант.
Спасибо!

ваый 25.08.2011 12:25

Цитата:

Сообщение от Kotakota
Все же интересно, как можно получить объект <script> из которого произошел вызов?

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

PeaceCoder 25.08.2011 12:37

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


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