Показать сообщение отдельно
  #1 (permalink)  
Старый 07.08.2011, 21:08
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Проверка на существование файла в IE с помощью readyState
Привет.
Есть код, который динамически подключает другие срипты:
function loadScripts(src,callback){
    var script = document.createElement("script");
    script.src = src;
    script.onload = script.onreadystatechange = function(){
    if ((!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
        script.onreadystatechange = script.onload = null;
        callback();
        }
        };
        var head = document.getElementsByTagName("head")[0];
        head.appendChild(script);
    }

Передадим скрипту, файл blahblah.js которого не существует:
loadScripts('blahblah.js',function(){alert('works!')});

IE (тестировал на версиях: 8 и 6), с удовольствием повесил и выполнил callback на несуществующем файле!
Проверил состояние readyState, вывел COMPLETE.
В других, нормальных браузерах, все работает. Проблема только с IE.
Какие есть варианты, заставить IE понимать, что файл не загрузился и callback вызывать не нужно.
Ответить с цитированием