Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > readystate в mozilla opera


Автор: drpain 1.10.2008, 16:17
Приветствую!!

Вобщем проблема такая... динамически гружу скрипты на сайт через javascript.... вооот и выходит что у тега script ни в opera ни в mozilla нет атрибута readystate. 

короче говоря я хочу проверить подгрузился или нет нужный файл, в ИЕ есть этот атрибут и у него я заметил 2 состояния loading / loaded... вот хотелось бы узнать аналоги в опере и мозиле.


Зарание благодарен

Автор: bars80080 1.10.2008, 17:45
а как событие onload?

Автор: drpain 1.10.2008, 22:43
 smile Клево, терь в ИЕ не пашет а в мозиле работает, супер, спасибо bars80080, ща буду дальше ковырять, пасиб

Автор: bars80080 1.10.2008, 23:07
так напиши оба события  smile 

Автор: drpain 2.10.2008, 14:25
 smile а больше помоему никаких вариантов нет, или я ошибаюсь? опишу для того и отдельно для другого....   вот ток не знаю, делать проверку на броузер? можно же в тупую описать оба события и каждый будет брать то которое ему нужно, но наверно такой способ будет засорять память, наверно лучше все же проверить броузер и подсунуть нужное событие... (интересно я понятно написал smile )

Автор: bars80080 2.10.2008, 18:19
?

а что, у тебя оба события ведут не на одну и ту же функцию?


впрочем, можно и так. проверку часто делают

Автор: ksnk 2.10.2008, 19:21
drpain, Зачем делать проверку? Разве что для того, чтобы одна и та-же процедура инициализации не вызвалась 2 раза. Для этого можно применить такой финт
Код

function initEmAll(){
   if(!!initEmAll.alreadyDone) return ;
   initEmAll.alreadyDone = true ;
  // ... инициализируемсо...
  ...
}

Такую функцию можно запускать сколько угодно раз. Выполниться она только однажды...

Автор: Loengreen 3.10.2008, 02:15
Есть вообще простой вариант (если я правильно понял вашу задачу). В конец каждого файла добавляем:
Код

alert('Привет! Я Скрипт №i! Я пришел!');

или до подключения всех скриптов объявляем некую глобальную переменную:
Код

var nScriptCounter = 0;
... В подключаемых динамически скриптах делаем инкремент...
nScriptCounter++
... И, если необходимо при загрузке всех скриптов совершить некии манипуляции...
if (nScriptCounter == nMax) init(); 


Я делал так подгрузку карты метро. Для того что бы сократить время первоначальной загрузки системы решил вспомогательные модули грузить по необходимости или после загрузки основных модулей системы спустя некии интервалы времени. 
Загрузившись, ситема ждет 2 секунды и загружает js с модулем метро. В загружаемом js вызывается функция которая собирает объект, подгружает html и css. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)