Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Динамическая подзагрузка и исполнение скриптов (https://javascript.ru/forum/css-html/4892-dinamicheskaya-podzagruzka-i-ispolnenie-skriptov.html)

NT Man 27.08.2009 22:56

Вложений: 1
У меня есть код:

//Исполнение внедренных в шаблон JavaScript скриптов
	var scripts = element.getElementsByTagName("script");
	var script;
	for (var i = 0; script = scripts[i]; i++) {
		var newScript = document.createElement('script');
		newScript.type="text/javascript";
		if (script.src) newScript.src = script.src;
		if (script.text) newScript.text = script.text;
		script.parentNode.replaceChild(newScript,script);
	}



И он даже работает в некоторых браузерах.
Первая проблема следующего плана, браузеры на движке Safari выполняют код не в той последовательности в которой подаются данные. JavaScript внедренный непосредственно в тэг script выполняется сразу, а вот исполнение скриптов во внешних ф-лах откладывается на потом и это рушит логику работы всей программы. Помогите просветиться на эту тему.

Чтоб было понятней о чем речь, сравните пожалуйста поведение браузеров на базе WebKit от поведения остальных браузеров на приложенном примере.

Хорошо видно, что разработчики всех движков, кроме WebKit придерживаются мнения, что скрипты должны исполнятся по схеме FIFO. А у разработчиков WebKit другое мнение :(

B~Vladi 28.08.2009 10:33

Получайте через xmlHTTPRequest и в eval().

NT Man 28.08.2009 12:32

(тяжело вздыхая) Опять костыли.... Эта была первая мысль обхода этого глюка. Но как-то не камильфо задействовать несколько транспортов. Пользуюсь IFRAME AJAX транспортом (ранее пользовался xmlHTTPRequest), но перешел на IFRAME, чтобы иметь возможность аплода файлов в фоне не прибегая к всяким флэшам и прочим в принципе ненужным примочкам.

Оформил багрепорт проголосуйте за него, чтобы скорее его исправили.


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