Динамическое подключение JS (DOM manipulation)

  • Автор темы Автор темы igortik
  • Дата начала Дата начала

igortik

Новичок
Есть идеи почему на работает (для всего, кроме FireFox)

PHP:
$('<script type="text/javascript" src="js/games/game_'+game+'.js" defer="defer"></script>').appendTo('#game');

в то время, как

PHP:
 $.getScript('js/games/game_'+game+'.js');

работает, получая скрипт аякс-запросом...

P.S. Также советую почитать http://stackoverflow.com/questions/610995/jquery-cant-append-script-element

А Ваше мнение какое, что лучше использовать?
 
И еще появилась проблема вставки css налету, вставляемым таким же методом, только уже не из предка, а из потомка.
имеется ввиду, что подключаемый JS скрипт методом, описанным выше, также инициирует
PHP:
$('<link rel=stylesheet type="text/css" href="css/games/hangman.css">').prependTo('#game');

что, естественно, только в IE всех версий не работает :)
 
Работает только дедовским методом:

PHP:
var css = document.createElement("link");
css.rel  = "stylesheet";
css.type  = "text/css";
css.href   = "css/games/hangman.css";
document.body.appendChild(css);
 
если дедовским методом работает, то причина, очевидно, в коде jQuery, который оказался кривым, или в кривом его использовании не по назначению.
 
если дедовским методом работает, то причина, очевидно, в коде jQuery, который оказался кривым, или в кривом его использовании не по назначению.

С кривостью рук проблем нет.
Да и в JQuery ничего сложного в использовании метода append() и аналогичных тоже нет. (однострочные решения приведены выше)

Проблема проявляется в разных браузерах.
Предположу, что ее суть в коде JQuery, т.к. "дедовский метод" создает конкретный элемент с конкретными свойствами (атрибутами) и вставляет его в DOM, в то время, как append() и ему подобные вставляет заданный html-код в DOM.

P.S. Оба метода делают тоже самое, но JQuery с ошибкой в IE.
 
Оба метода делают тоже само
не правда Ваша. Делают они СОВЕРШЕННО разное. код jQuery вставляет html код, который должен быть распарсен браузером и исполнен, а "дедовский" создает DOM элемент на-прямую. Разница принципиальная и jQuery вообще не при чем.
 
Сверху