Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.08.2011, 08:17
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

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

Последний раз редактировалось Kotakota, 25.08.2011 в 08:29.
Ответить с цитированием
  #2 (permalink)  
Старый 25.08.2011, 08:31
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var head = document.getElementsByTagName('head')[0];
head.appendChild( g );
Ответить с цитированием
  #3 (permalink)  
Старый 25.08.2011, 08:36
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Сообщение от devote Посмотреть сообщение
var head = document.getElementsByTagName('head')[0];
head.appendChild( g );
Радикально!
Ответить с цитированием
  #4 (permalink)  
Старый 25.08.2011, 08:38
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Все же интересно, как можно получить объект <script> из которого произошел вызов?
Ответить с цитированием
  #5 (permalink)  
Старый 25.08.2011, 08:43
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

никак
Ответить с цитированием
  #6 (permalink)  
Старый 25.08.2011, 08:46
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Понял, спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 25.08.2011, 09:40
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Kotakota Посмотреть сообщение
Все же интересно, как можно получить объект <script> из которого произошел вызов?
пройтись по всем скриптам и сравнить src.
Ответить с цитированием
  #8 (permalink)  
Старый 25.08.2011, 12:12
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Сообщение от melky Посмотреть сообщение
пройтись по всем скриптам и сравнить src.
Как вариант.
Спасибо!
Ответить с цитированием
  #9 (permalink)  
Старый 25.08.2011, 12:25
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Сообщение от Kotakota
Все же интересно, как можно получить объект <script> из которого произошел вызов?
Элементарно.
var scripts = document.getElementsByTagName('script').
var thisScript = scripts[scripts.length - 1]; // Вот этот объект скрипта, в котором размещены эти строки
Ответить с цитированием
  #10 (permalink)  
Старый 25.08.2011, 12:37
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

кстати немного странно. а почему this в самом скрипте не указывает на этот элемент скрипта ?
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как добавить текст после элемента? AquaGen jQuery 9 23.08.2011 16:21
Как получить размер блока сразу после изменения его содержимого? Cooskon Events/DOM/Window 6 17.09.2010 16:15
как обратиться к childNode по его id в div-е, через id родителя kichSman Events/DOM/Window 5 28.10.2009 02:16