Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   опера и readyState (https://javascript.ru/forum/css-html-browser/4739-opera-i-readystate.html)

juckoff 17.08.2009 19:10

опера и readyState
 
вот такая фунция на onclick:


Код:

prvImg = new Image();
prvImg.src = 111.jpg;

if (prvImg.readyState == "complete") {
alert("111111");
}
else prvImg.onload = function() {
alert("2222222");
};

в опере нет ни alert1 ни alert2, в IE и мозилла все ок. Почему? Плиз хелп.

Kolyaj 17.08.2009 19:12

src устанавливайте после установки событий.

juckoff 17.08.2009 20:00

сделал так:

Код:

function qwerty ()
{
prvImg = new Image();

if (prvImg.readyState == "complete") {
alert("111111");
}
else prvImg.onload = function() {
alert("2222222");
};

prvImg.src = 111.jpg;
}

спасибо, работает.

Но хотелось бы разобраться...

вопрос№1:
alert111 теперь не выскакивает никогда, даже когда очищаю кеш. Но ведь картинка должна туда записываться. по мойму alert111 за это и отвечает. Или я не прав?

вопрос№2:
непонял логику. Как могут сработать события, если источник указан после них.:blink:

Kolyaj 17.08.2009 21:10

Цитата:

Сообщение от juckoff
alert111 теперь не выскакивает никогда, даже когда очищаю кеш. Но ведь картинка должна туда записываться. по мойму alert111 за это и отвечает.

Он и не должен. Вы же его проверяете, когда у картинки нет src. Это просто пустой объект, грубо говоря. Зачем он вам вообще нужен?

Цитата:

Сообщение от juckoff
Как могут сработать события, если источник указан после них.

А в чем проблема? В том-то и дело, что если картинка берется из кэша, onload наступает до того, как вы повесите на него обработчик.


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