![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
chuser |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.12.2007 Репутация: нет Всего: нет |
Задача такая: открыть новое окно и сделать его размеры равными размерам изображения, путь к которому передается в параметре img_url. Загружаю изображение и функцией checkLoad проверяю загрузилось оно или еще нет. В функции checkLoad использую рекурсию. Функция checkLoad должна выполняться пока изображение не загрузится, т.е. пока условие myImage.complete не станет true. Но нифига не работает. А вот, если в блоке else раскомментировать строку alert('no'), то все нормально работает. Зацикливание происходит. Ну естественно при каждой проверке выскакивает сообщение с текстом "no".
А вот, если строку alert('no') убрать, то не работает. В чем проблема? Не могу разобраться. Уже полдня сижу и туплю. function new_win(url, img_url) { var myImage = new Image(); myImage.src = "http://ekkirpich.ru" + img_url; checkLoad(); function checkLoad(){ if(myImage.complete){ var w = myImage.width; var h = myImage.height; var wTop = screen.height / 2 - h / 2; var wLeft = screen.width / 2 - w / 2; var param = "width=" + w + ",height=" + h + ",left=" + wLeft + ",top=" + wTop; newWin = window.open(url, "myWindow", param); } else{ //alert('no'); checkLoad();} } } Это сообщение отредактировал(а) chuser - 14.10.2009, 11:11 |
|||
|
||||
magician7 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 7.5.2009 Где: Киев Репутация: нет Всего: нет |
не совсем понятно:
Происходит только зацикливание? а срабатывает ли хоть раз условие:
если нет, то что выводит такой код?
|
||||||
|
|||||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
вам не кажется странным, что у вас одна функция сидит в другой?
да ещё и вызов до объявления |
|||
|
||||
chuser |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.12.2007 Репутация: нет Всего: нет |
Условие if(myImage.complete){ не срабатывает. Не знаю почему. Но вот если раскомментировать строку alert('no'), то условие срабатывает.
alert(myImage.src) выводит корректный путь к изображению. |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 2 Всего: 16 |
ну мне, например, совсем не кажется: вложенные функции не загрязняют глобальное пространство имен. Объявления (переменных функций) "выполняются" при входе в функцию, перед выполнением кода alert создает задержку, за которую картинка успевает загрузиться. Лучше назначай обработчик onload, причем перед назначением src |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
...
Добавлено через 1 минуту и 40 секунд ![]() Это сообщение отредактировал(а) bars80080 - 15.10.2009, 00:44 |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 2 Всего: 16 |
||||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |