Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает скрипт? (https://javascript.ru/forum/misc/1041-pochemu-ne-rabotaet-skript.html)

milvic 19.02.2008 16:20

Почему не работает скрипт?
 
Цель: динамически подцеплять javascript файлики для aspx страницы:
Он вроде как корректно отрабатывает *ошибок не выдает*, но в тэг <head> никаких новых записей не вставлется.
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', '../Cards/SalePlan/CardToolBar.js');
var head = document.getElementById('CardTemplateId');
head.appendChild(script);

Phoenix 20.02.2008 10:30

Хм... я как то пробовал, посредством AJAX (JsHttpRequest) подключать динамически JS файл.. оне не выполнялся. Может что я не так делал, хз.

Kolyaj 21.02.2008 10:46

1. Как вы смотрите, что добавляется в head? Просмотр HTML-кода здесь не прокатит.
2. Необязательно вставлять в head, можно и в body, и вообще куда угодно.
3. Я так понимаю, у вас у head стоит атрибут id="CardTemplateId"?

Если делать более-менее универсально, то у меня так:
Код:

function include(src) {
  setTimeout(function() {
    if (document.body) {
      var s = document.createElement('SCRIPT');
      s.type = 'text/javascript';
      s.src = src;
      document.body.appendChild(s);
    } else
      document.write('<script type="text/javascript" src="' + src + '"></script>');
  }, 1);
}

Здесь если body существует, то в него добавляется скрипт DOM-методами, если же нет - значит страница до конца не загружена, и можно смело использовать document.write. setTimeout нужен для Оперы, т.к. она подключает скрипты синхронно, в отличие от всех остальных.

Гость 03.03.2008 14:12

Спасибо всем, скрипт рабочий, просто он, как было правильно замечено, не отображается в html коде :)


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