Mozilla, подгрузка JavaScript

whirlwind

TDD infected, paranoid
Mozilla, подгрузка JavaScript

Задача - подгрузить JavaScript таким образом, что бы его объявления были доступны в майнтреде.
eval сразу отпадает, т.к. выполняет код во временном контексте.
дописывыть в документ <script> - слишком много привязок к браузерам + onload на тэг script работает не везде, -> контроль загрузки превращается в геморой.

Нашлось такое вот решение

Код:
var scripts = document.all.tags("script");
script = scripts[scripts.length - 1];
script.text = code;
которое работает в IE и Opera, но не работает в FF.
Посмотреть можно здесь

http://prolib.ru/ajax/test/include_test.html

Вопрос: как мозиле подсунуть код для выполнения в основном контексте страницы?
 

SelenIT

IT-лунатик :)
Вроде вот такой "обходной хак" работает:
Код:
var scripts = document.getElementsByTagName("script");
script = scripts[scripts.length - 1];
s = document.createElement("script");
s.text = code;
script.parentNode.appendChild(s);
s.parentNode.removeChild(script);
 

whirlwind

TDD infected, paranoid
SelenIT большое спасибо! Заработало и в FF.

PS. Кому не трудно, покликайте на ссылке (первый пост) другими браузерами (в частности интересует Сафари), может еще какие глюки вылезут. При показе страницы должно быть

Код:
this is message by loaded script
foo called
bar called
class2FnTest called with msg: I AM class1.js
class1FnTest called with msg: I AM class2.js
Dump table:
Если в вашем браузере видна только первая строка, напишите сюда версию браузера плз.
 
Сверху