Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2011, 11:55
Аватар для dolas
Новичок на форуме
Отправить личное сообщение для dolas Посмотреть профиль Найти все сообщения от dolas
 
Регистрация: 09.09.2011
Сообщений: 4

динамическая загрузка скриптов
Для подгрузки скриптов использую код:

var s=document.createElement('script');
s.type='text/javascript';
s.src=[I]<имя файла скрипта .js>[/I];
var s0=document.getElementsByTagName('script')[0];
s0.parentNode.insertBefore(s,s0);


Как определить успешно ли подгружен файл (например - что будет если такого файла нет)?
Пробовал смотреть .text, привязывать события onload,onerror к скрипту - бестолку.
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2011, 12:02
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

s.onload = function...
Не работает разве?

Последний раз редактировалось Sweet, 09.09.2011 в 12:05.
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2011, 12:07
Аватар для dolas
Новичок на форуме
Отправить личное сообщение для dolas Посмотреть профиль Найти все сообщения от dolas
 
Регистрация: 09.09.2011
Сообщений: 4

попробовал так:
s.onload=function (){alert('loaded');};

не работает когда есть файл и когда его нет
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2011, 12:35
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

var script = document.createElement('script');
if (script.readyState && !script.onload) {
    // IE, Opera
    script.onreadystatechange = function() {
        if (script.readyState == "loaded" || script.readyState == "complete") {
            script.onreadystatechange = null;
            alert('Loaded');
        }
    }
}
else {
    // Rest
    script.onload = function() {
        alert('Loaded');
    };
}
script.src = src;
document.getElementsByTagName('head')[0].appendChild(script);
Можно оформить в функцию:
var loadScript = function(src, callback, appendTo) {
    var script = document.createElement('script');

    if (!appendTo) {
        appendTo = document.getElementsByTagName('head')[0];
    }

    if (script.readyState && !script.onload) {
        // IE, Opera
        script.onreadystatechange = function() {
            if (script.readyState == "loaded" || script.readyState == "complete") {
                script.onreadystatechange = null;
                callback();
            }
        }
    }
    else {
        // Rest
        script.onload = callback;
    }

    script.src = src;
    appendTo.appendChild(script);
}

Последний раз редактировалось ваый, 09.09.2011 в 12:42.
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2011, 14:00
Аватар для dolas
Новичок на форуме
Отправить личное сообщение для dolas Посмотреть профиль Найти все сообщения от dolas
 
Регистрация: 09.09.2011
Сообщений: 4

Спасибо. Похоже, вопрос снят.
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2011, 20:38
Аватар для unclechu
Интересующийся
Отправить личное сообщение для unclechu Посмотреть профиль Найти все сообщения от unclechu
 
Регистрация: 12.09.2011
Сообщений: 14

Я к примеру использую RequireJS.
Ответить с цитированием
  #7 (permalink)  
Старый 08.03.2013, 06:07
Новичок на форуме
Отправить личное сообщение для aleksp Посмотреть профиль Найти все сообщения от aleksp
 
Регистрация: 15.12.2011
Сообщений: 9

RequireJS херня по-моему. Попробуйте во время выполнения кода динамически сформировать путь к скрипту и затем подгрузить его с помощью RequireJS - выдаст ошибку! Копание в его внутренностях показал, что перед загрузкой скрипта он ищет его имя в неком своем списке, который формируется при инициализации. Т.е. ему заранее необходимо знать пути ко всем скриптам, которые буду использоваться. Соотвественно, если попросить его загрузить скрипт, путь к которому формируется динамически в процессе работы (например: '/js/admin/cms/controllers/' + controllerName + '/index.js'). Он скажет извините не могу найти такой у себя в списке - гуляйте.

Последний раз редактировалось aleksp, 08.03.2013 в 06:13.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка iframe. Согласование скриптов. Jurasmi Общие вопросы Javascript 4 05.03.2011 16:20
Динамическая загрузка страницы ybiza Элементы интерфейса 11 23.02.2011 13:16
IMG-объект динамическая загрузка изображения maruany Элементы интерфейса 2 17.06.2010 21:34
Динамическая подзагрузка и исполнение скриптов NT Man Javascript под браузер 2 28.08.2009 12:32
Паралельная загрузка чужих скриптов? GOll Общие вопросы Javascript 2 10.07.2008 22:39