Привет.
Есть код, который динамически подключает другие срипты:
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 вызывать не нужно.