>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Некорректная работа window.open() в FF http://forum.mozilla-russia.org/viewtopic.php?id=30070 |
Alexey.Voron > 21-01-2009 13:48:25 |
Здравствуйте, Столкнулся с такой проблемой: Простейшая задача: При кликанье на фотке превьюшке, открываю большую фотографию в другом окне, используя window.open() с параметрами. В том числе передаю параметр resizable=0. 1. FF этот параметр игнорирует, можно ли это как-нибудь побороть. Кто сталкивался с данными проблемами и поборол их буду очень признателен если подскажите ответ. Алексей. P/S/ Сразу скажу что поиском по сайту ответа на мои вопросы не нашел. |
banbot > 21-01-2009 15:10:38 |
Пример кода в студию. |
Lynn > 21-01-2009 17:12:59 |
За первое отвечает настройка dom.disable_window_open_feature.resizable в about:config. Значание по-умолчанию запрещает запрещать изменение размеров. И это правильно. Второе неясно, покажите код, а лучше адрес страницы в сети и скриншоты. |
Alexey.Voron > 21-01-2009 17:54:35 |
Да собственно код простейший: Это вызов: Выделить код Код:<a href="big_foto.jpg" target="_blank" onClick="newWin('big_foto.jpg'); return false;"><img src="small_foto.jpg" alt="Альт" border="0"/></a> А это сама функция 'newWin'(собственно все что отвечает за открытие нового окна это последние пять строчек): Выделить код Код:<script language="javascript"> function newWin(foto) { nImage = new Image(); nImage.src = foto; width = screen.width; height = screen.height; i = nImage.width; j = nImage.height; k = 0; if (i > screen.width) { i = screen.width - 80; j = nImage.height + 30; k = 1; } if (j > screen.height) { j = screen.height - 100; i = nImage.width + 40; k = 1; } if (width == 0 || height == 0) { i = 640; j = 480; k = 1; } else { i = i + 40; j = j + 30; } myWin=window.open("","","width="+i+",height="+j+",left=0,top=0,toolbar=0,location=0,directories=0,menubar=0,scrollbars="+k+",resizable="+k+",status=0,fullscreen=0"); myWin.document.write("<html><head><title>Большое фото</title></head><body bgcolor='#000000' leftmargin='0'><img src="+foto+" border='0'></body></html>"); myWin.document.close(); myWin.focus(); } //--> </script> |
Shutnik > 21-01-2009 20:38:27 |
в firefox есть консоль ошибок javascript |
Alexey.Voron > 22-01-2009 11:27:38 |
Да в том то все и дело, что ошибки javascript нет. Вот прилагаю screensave: Это при первом вызове окна: Это при втором вызове окна: |
Lynn > 22-01-2009 17:40:51 |
Могу предположить, что при первом вызове картинка не успевает загрузится к тому моменту когда вы берёте её размеры |
Alexey.Voron > 22-01-2009 18:30:30 |
Странно если это так, так как размер большой фотки всего 88 КБайт. Но как бы там не было, огромное спасибо за помощь!! Теперь есть тема к размышлению! |
Infocatcher > 22-01-2009 21:25:40 |
Alexey.Voron пишет
Так в чем проблема – берите размеры по событию load для картинки. |
Alexey.Voron > 23-01-2009 13:37:45 |
Infocatcher пишет
Спасибо за совет, действительно применение события onload помогло решить вышеописанную проблему. Правда теперь FF оценивает открытие большой фотки, как всплывающее окно и блокирует его пока не разрешишь... Алексей. |
Infocatcher > 23-01-2009 15:44:28 |
Alexey.Voron пишет
Насколько я помню, dom.popup_allowed_events в about:config отвечает за события, по которым можно открывать всплывающие окна. |