Здравствуйте,

Столкнулся с такой проблемой:

Простейшая задача:

При кликанье на фотке превьюшке, открываю большую фотографию в другом окне, используя window.open() с параметрами. В том числе передаю параметр resizable=0.

1. FF этот параметр игнорирует, можно ли это как-нибудь побороть.
2. При первом открытии, фотка открывается в малюсеньком окошке, хотя я передаю и width и height. Закрываю это окно и открываю снова, все работает как надо и работает так пока не закрою данную сессию.

Кто сталкивался с данными проблемами и поборол их буду очень признателен если подскажите ответ.

Алексей.

P/S/ Сразу скажу что поиском по сайту ответа на мои вопросы не нашел.

Пример кода в студию.

За первое отвечает настройка dom.disable_window_open_feature.resizable в about:config. Значание по-умолчанию запрещает запрещать изменение размеров. И это правильно.

Второе неясно, покажите код, а лучше адрес страницы в сети и скриншоты.

Да собственно код простейший:

Это вызов:

Выделить код

Код:

<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>

в firefox есть консоль ошибок javascript

Да в том то все и дело, что ошибки javascript нет. Вот прилагаю screensave:

Это при первом вызове окна:
http://forum.mozilla-russia.org/uploade … resize.jpg

Это при втором вызове окна:

http://forum.mozilla-russia.org/uploade … resize.jpg

Могу предположить, что при первом вызове картинка не успевает загрузится к тому моменту когда вы берёте её размеры

Странно если это так, так как размер большой фотки всего 88 КБайт. Но как бы там не было, огромное спасибо за помощь!! Теперь есть тема к размышлению!

Alexey.Voron пишет

Странно если это так, так как размер большой фотки всего 88 КБайт.

Так в чем проблема – берите размеры по событию load для картинки.

Infocatcher пишет
Alexey.Voron пишет

Странно если это так, так как размер большой фотки всего 88 КБайт.

Так в чем проблема – берите размеры по событию load для картинки.

Спасибо за совет, действительно применение события onload помогло решить вышеописанную проблему. Правда теперь FF оценивает открытие большой фотки, как всплывающее окно и блокирует его пока не разрешишь...:(

Алексей.

Alexey.Voron пишет

Правда теперь FF оценивает открытие большой фотки, как всплывающее окно и блокирует его пока не разрешишь...:(

Насколько я помню, dom.popup_allowed_events в about:config отвечает за события, по которым можно открывать всплывающие окна.
Так что, по-моему, проще открывать окно с картинкой сразу по, например, click, а как картинка загрузится – изменить размеры окна.