Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№121-01-2009 13:48:25

Alexey.Voron
 
Группа: Guest
UA: Firefox 3.0

Некорректная работа window.open() в FF

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

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

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

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

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

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

Алексей.

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

 

№221-01-2009 15:10:38

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5293
UA: Chrome 1.0

Re: Некорректная работа window.open() в FF

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


Do you feel lucky, punk?

Отсутствует

 

№321-01-2009 17:12:59

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: Некорректная работа window.open() в FF

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

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


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№421-01-2009 17:54:35

Alexey.Voron
 
Группа: Guest
UA: Firefox 3.0

Re: Некорректная работа window.open() в FF

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

Это вызов:

Выделить код

Код:

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

№521-01-2009 20:38:27

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 3.1

Re: Некорректная работа window.open() в FF

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

Отсутствует

 

№622-01-2009 11:27:38

Alexey.Voron
Участник
 
Группа: Members
Зарегистрирован: 22-01-2009
Сообщений: 3
UA: Firefox 3.0

Re: Некорректная работа window.open() в FF

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

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

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

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

Отсутствует

 

№722-01-2009 17:40:51

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: Некорректная работа window.open() в FF

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


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№822-01-2009 18:30:30

Alexey.Voron
Участник
 
Группа: Members
Зарегистрирован: 22-01-2009
Сообщений: 3
UA: Firefox 3.0

Re: Некорректная работа window.open() в FF

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

Отсутствует

 

№922-01-2009 21:25:40

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.0

Re: Некорректная работа window.open() в FF

Alexey.Voron пишет

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

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


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1023-01-2009 13:37:45

Alexey.Voron
Участник
 
Группа: Members
Зарегистрирован: 22-01-2009
Сообщений: 3
UA: Firefox 3.0

Re: Некорректная работа window.open() в FF

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

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

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

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

Алексей.

Отсутствует

 

№1123-01-2009 15:44:28

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.0

Re: Некорректная работа window.open() в FF

Alexey.Voron пишет

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

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


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]