Страницы: 1
Здравствуйте,
Столкнулся с такой проблемой:
Простейшая задача:
При кликанье на фотке превьюшке, открываю большую фотографию в другом окне, используя window.open() с параметрами. В том числе передаю параметр resizable=0.
1. FF этот параметр игнорирует, можно ли это как-нибудь побороть.
2. При первом открытии, фотка открывается в малюсеньком окошке, хотя я передаю и width и height. Закрываю это окно и открываю снова, все работает как надо и работает так пока не закрою данную сессию.
Кто сталкивался с данными проблемами и поборол их буду очень признателен если подскажите ответ.
Алексей.
P/S/ Сразу скажу что поиском по сайту ответа на мои вопросы не нашел.
За первое отвечает настройка dom.disable_window_open_feature.resizable в about:config. Значание по-умолчанию запрещает запрещать изменение размеров. И это правильно.
Второе неясно, покажите код, а лучше адрес страницы в сети и скриншоты.
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
Да собственно код простейший:
Это вызов:
<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>
Да в том то все и дело, что ошибки javascript нет. Вот прилагаю screensave:
Это при первом вызове окна:
http://forum.mozilla-russia.org/uploade … resize.jpg
Это при втором вызове окна:
Отсутствует
Могу предположить, что при первом вызове картинка не успевает загрузится к тому моменту когда вы берёте её размеры
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
Странно если это так, так как размер большой фотки всего 88 КБайт. Но как бы там не было, огромное спасибо за помощь!! Теперь есть тема к размышлению!
Отсутствует
Странно если это так, так как размер большой фотки всего 88 КБайт.
Так в чем проблема – берите размеры по событию load для картинки.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Alexey.Voron пишетСтранно если это так, так как размер большой фотки всего 88 КБайт.
Так в чем проблема – берите размеры по событию load для картинки.
Спасибо за совет, действительно применение события onload помогло решить вышеописанную проблему. Правда теперь FF оценивает открытие большой фотки, как всплывающее окно и блокирует его пока не разрешишь...
Алексей.
Отсутствует
Правда теперь FF оценивает открытие большой фотки, как всплывающее окно и блокирует его пока не разрешишь...
Насколько я помню, dom.popup_allowed_events в about:config отвечает за события, по которым можно открывать всплывающие окна.
Так что, по-моему, проще открывать окно с картинкой сразу по, например, click, а как картинка загрузится – изменить размеры окна.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Страницы: 1