Comments 40
Отлично! Некоторые наработки в этой области сам имел, но такой последовательный обзор будет очень полезен!
и чего стоит это тестирование, если тут нет IE 7?
Ну так методика описана проделайте ее для ие7 :). Под линуксом нет реализации ие7, а с виртуалками автор решил не связываться.
и что тут делает navigator 9? вместо firefox 2 что ли?
kronos правильно написал, увы, я не видел иных переносов IE7 под Linux за исключнием вставки движка IE7 в интерфейс IE6, а это совсе не то, взять хотя бы отсутствие вкладок.
Именно поэтому я и пишу, что было бы замечательно если бы кто-нибудь посмотрел как это работает в IE7.
Именно поэтому я и пишу, что было бы замечательно если бы кто-нибудь посмотрел как это работает в IE7.
Последнее открытие не очень веселое. Некоторые пользователи не в состоянии версию браузера сказать, а тут им еще объяснить что для корректной работы нужно "внести сайт в список исключений":)
А где Safari?
Если скажите где взять Safari под Linux (с windows-версией через wine пока что-то не срастается), буду очень благодарен. Кроме шуток.
дайте ссылочки на страницы со скриптами, протестирую safari под макосью
самому лень делать =)
самому лень делать =)
Добавил ссылку в конец заметки.
Safari 3.0.4 (5523.15), mac os 10.5.2
От галочки «Блокировать всплывающие окна» поведение не меняется абсолютно. Если ссылки жать вместе с яблоком (принудительное открытие окна в новой вкладке), то все равно появляются новые окна.
Без параметров: размеры по умолчанию, позиция на 32 пикселя (примерно, на глаз) ниже и правее текущего окна (но если нижняя граница текущего окна очень близко находится от нижней границы экрана, то у нового окна top=0), тулбар, скролл и статусная строка в наличии, окно тянется во все стороны
Размеры 640х480: исчезли тулбар, скролл и статусная строка, окно перестало тянуться. Позиция на 32 пикселя ниже и правее текущего (или top=0, см. выше), размеры 640х480 + 32 пиксела заголовка.
Очень большой размер: размер изменился на 1440х900 (разрешение экрана), позиция — на 32 пиксела правее текущего. Все остальное по прежнему.
Позиционирование: отсчет идет от верхнего левого угла минус меню, т.е.

В стиле Netscape: то же самое
Вне рабочего стола: left=0, top=0
Location: появилась адресная строка и тулбар, скролла нет, размеры менять нельзя.
Menubar: игнорируется, т.е. аналогично размеру 640х480.
Scrollbars: то же, что и размер 640х480, но появился вертикальный скролл
Status: то же, что и размер 640х480, но появился статусбар.
Toolbar: то же, что и location.
От галочки «Блокировать всплывающие окна» поведение не меняется абсолютно. Если ссылки жать вместе с яблоком (принудительное открытие окна в новой вкладке), то все равно появляются новые окна.
Без параметров: размеры по умолчанию, позиция на 32 пикселя (примерно, на глаз) ниже и правее текущего окна (но если нижняя граница текущего окна очень близко находится от нижней границы экрана, то у нового окна top=0), тулбар, скролл и статусная строка в наличии, окно тянется во все стороны
Размеры 640х480: исчезли тулбар, скролл и статусная строка, окно перестало тянуться. Позиция на 32 пикселя ниже и правее текущего (или top=0, см. выше), размеры 640х480 + 32 пиксела заголовка.
Очень большой размер: размер изменился на 1440х900 (разрешение экрана), позиция — на 32 пиксела правее текущего. Все остальное по прежнему.
Позиционирование: отсчет идет от верхнего левого угла минус меню, т.е.

В стиле Netscape: то же самое
Вне рабочего стола: left=0, top=0
Location: появилась адресная строка и тулбар, скролла нет, размеры менять нельзя.
Menubar: игнорируется, т.е. аналогично размеру 640х480.
Scrollbars: то же, что и размер 640х480, но появился вертикальный скролл
Status: то же, что и размер 640х480, но появился статусбар.
Toolbar: то же, что и location.
новая узвимость в ие6 найдена? =))
спасибо! Пригодится наверняка!
Прям кандидатская работа))
ух, неплохо)
НО
не хватает таки FF2, например у меня попапы с неизменяемым размером открываются
так же не совсем понятны "игнорируется" - игнорируется и всегда отображается или игнорируется, и при этом не отображается?
НО
не хватает таки FF2, например у меня попапы с неизменяемым размером открываются
так же не совсем понятны "игнорируется" - игнорируется и всегда отображается или игнорируется, и при этом не отображается?
В about:config ищете параметр dom.disable_window_open_feature.resizable и устанавливаете его значение в false (подробности обо всем этом в моем комменте ниже).
В комменте выше ошибочка имелось в виду надо установить этот параметр в true, чтобы попапы всегда открывались с изменяемым размером. Виноват.
Ну.. в общем, все понятно.. за исключением конечной цели автора работы. По результатам, имхо у IE самое предсказуемое поведение (что задал, то и получил).
Насчет Firefox есть тонкость.
Поведение метода window.open зависит от параметров в about:config и для включения/выключения деталей интерфейса регулируется значениями dom.disable_window_open_feature.*
В Firefox 1.5.0.12 и 2.0.0.4 по умолчанию запрещены параметры status (а также изменение статусбара). Я еще руками запрещаю location.
На возможность изменять размеры окна влияет параметр resizable. Если включен его запрет, то окно можно ресайзить в любом случае.
Так что наверное в FF3 поменяли умолчание для location и resizable, либо Вы их поменяли вручную.
Также важно, что вызов оного метода из консоли javascript никак не ограничен (можно даже использовать адреса протокола about:). Похоже, что в этом случае код исполняется вообще без ограничений безопасности.
Поведение метода window.open зависит от параметров в about:config и для включения/выключения деталей интерфейса регулируется значениями dom.disable_window_open_feature.*
В Firefox 1.5.0.12 и 2.0.0.4 по умолчанию запрещены параметры status (а также изменение статусбара). Я еще руками запрещаю location.
На возможность изменять размеры окна влияет параметр resizable. Если включен его запрет, то окно можно ресайзить в любом случае.
Так что наверное в FF3 поменяли умолчание для location и resizable, либо Вы их поменяли вручную.
Также важно, что вызов оного метода из консоли javascript никак не ограничен (можно даже использовать адреса протокола about:). Похоже, что в этом случае код исполняется вообще без ограничений безопасности.
Добавил статью в избранное, наверняка перечитаю, когда буду биться и недоумевать почему это окна везде разные? :)
спасибо, отличный обзор
Очень жаль что нет тестироапгие под IE7. C попапами у меня там проблема, как не старался отключить вывод navigation bar (информации о адрессе - url) страницы так и не удалось. Причем в FF2, IE6, Opera 9 и Safari показывает нормально, а IE7 пихает светит url popup хот ты тресни. :(
У меня IE7 ообще не желает открывать popup-окно. Он открывает новую вкладку браузера.
Как это победить я не придумал. буду рад, если кто-то подскажет.
Как это победить я не придумал. буду рад, если кто-то подскажет.
Почему опера - она? :) "открыла"
Браузер - он мой!
Браузер - он мой!
Был весьма удивлён возможностью IE создавать окно больше размеров рабочего стола. Насколько мне известно в Windows это запрещено. Т.е. даже если вызвать API функцию SetWindowPos или MoveWindow, то большие размеры не устанавливаются (раньше так думал, надо перепроверить).
Проверил это в IE7 под Vista, результаты таковы, что действительно окно такое, что чуть больше рабочего стола. Рассмотрев это дело поподробнее пришёл к выводу, что окно изменило размер таким образом, что его клиентская область стала размером с рабочий стол. Также нужно обратить внимание на то, что в отличие от скриншота, начальная позиция окна не выходила за пределы экрана - заголовок был виден.
Далее проверил в IE6 под XP. Здесь оказалось возможным создавать окно явно превышающее размеры рабочего стола. Это и правда очень странное решение. Правда XP проверял под VMWare, так что не исключено, что эксперимент не совсем чистый из-за виртуальности видеокарты, поддерживающей разрешения до 2360 x 1770. Возможно максимальный размер окна отсчитывается в данном случае от этой цифры.
Проверил это в IE7 под Vista, результаты таковы, что действительно окно такое, что чуть больше рабочего стола. Рассмотрев это дело поподробнее пришёл к выводу, что окно изменило размер таким образом, что его клиентская область стала размером с рабочий стол. Также нужно обратить внимание на то, что в отличие от скриншота, начальная позиция окна не выходила за пределы экрана - заголовок был виден.
Далее проверил в IE6 под XP. Здесь оказалось возможным создавать окно явно превышающее размеры рабочего стола. Это и правда очень странное решение. Правда XP проверял под VMWare, так что не исключено, что эксперимент не совсем чистый из-за виртуальности видеокарты, поддерживающей разрешения до 2360 x 1770. Возможно максимальный размер окна отсчитывается в данном случае от этой цифры.
спасибо! оч полезная оказалась статья!
Sign up to leave a comment.
Различия в поведении window.open в разных браузерах