Какое свойство нового окна задается параметром scrollbars
Главная / Интернет-технологии /
Введение в JavaScript / Тест 4
Упражнение 1:
Номер 1
Свойство window.location представляет собой …
Ответ:
 (1) URL ссылки, на которой находится указатель мыши 
 (2) строковое значение, указываюшее адрес текущей страницы 
 (3) объект, одно из свойств которого есть адрес текущей страницы 
 (4) массив адресов посещенных сайтов 
Номер 2
Свойство window.navigator представляет собой …
Ответ:
 (1) свойство, указывающее наличие панели навигации в браузере 
 (2) строковое значение, указывающее название и версию браузера 
 (3) объект, свойства которого указывают название и версию браузера 
 (4) версию браузера Netscape Navigator 
Номер 3
Свойство window.status представляет собой …
Ответ:
 (1) URL ссылки, на которой находится указатель мыши 
 (2) строку, отображаемую в строке состояния браузера 
 (3) значение true/false, обозначающее статус загрузки документа 
Упражнение 2:
Номер 1
Какое свойство нового окна задается параметром location?
Ответ:
 (1) наличие строки состояния 
 (2) URL-адрес страницы в окне 
 (3) наличие адресной строки 
Номер 2
Какое свойство нового окна задается параметром toolbar?
Ответ:
 (1) наличие панели инструментов 
 (2) наличие полосы прокрутки 
 (3) наличие строки состояния 
Номер 3
Какое свойство нового окна задается параметром scrollbars?
Ответ:
 (1) наличие панели инструментов 
 (2) наличие полосы прокрутки 
 (3) наличие строки состояния 
Упражнение 3:
Номер 1
Какие из перечисленных действий произойдут, если кликнуть по данной ссылке?
<A HREF=»1.htm» onClick=»window.open(‘2.htm’, ‘ku’, »)»>Ссылка</A>
Ответ:
 (1) файл 1.htm откроется в новом окне 
 (2) файл 1.htm откроется в текущем окне 
 (3) файл 2.htm откроется в новом окне 
 (4) файл 2.htm откроется в текущем окне 
Номер 2
Какое из перечисленных действий произойдет, если кликнуть по данной ссылке?
<A HREF=»1.htm» onClick=»window.open(‘2.htm’, ‘ku’, »);return false;»>Ссылка</A>
Ответ:
 (1) файл 1.htm откроется в новом окне 
 (2) файл 1.htm откроется в текущем окне 
 (3) файл 2.htm откроется в новом окне 
 (4) файл 2.htm откроется в текущем окне 
Номер 3
Какие из перечисленных действий произойдут, если кликнуть по данной ссылке?
<A HREF=»1.htm» onClick=»window.open(‘2.htm’, ‘ku’, »);return true;»>Ссылка</A>
Ответ:
 (1) файл 1.htm откроется в новом окне 
 (2) файл 1.htm откроется в текущем окне 
 (3) файл 2.htm откроется в новом окне 
 (4) файл 2.htm откроется в текущем окне 
Упражнение 4:
Номер 1
Выберите ссылки, кликнув по которым, мы закроем текущее окно:
Ответ:
 (1) <A HREF=»» onClick=»shutdown()»>Щелкните, чтобы закрыть</A> 
 (2) <A HREF=»» onClick=»self.close()»>Щелкните, чтобы закрыть</A> 
 (3) <A HREF=»» onClick=»document.close()»>Щелкните, чтобы закрыть</A> 
 (4) <A HREF=»» onClick=»window.close()»>Щелкните, чтобы закрыть</A> 
Номер 2
Какие из команд откроют окно, содержащее полосы прокрутки и панель инструментов?
Ответ:
 (1) window.open(‘1.htm’, ‘ku’, ‘toolbar=yes,scrollbars=yes’) 
 (2) window.open(‘1.htm’, ‘ku’, ‘toolbars=yes,scrollbar=yes’) 
 (3) window.open(‘1.htm’, ‘ku’, ‘scrollbars=yes,toolbar=no’) 
 (4) window.open(‘1.htm’, ‘ku’, ‘scrollbars=yes,menubar=no,toolbar=yes’) 
 (5) window.open(‘1.htm’, ‘ku’, ‘status=yes,scrollbars=yes,toolbar=yes’) 
Упражнение 6:
Номер 1
Определите ошибку:
<A HREF=»1.htm» onClick=»window.open(‘2.htm’, ‘ku’, ‘width=300,status=0’)»>Ссылка</A>
Ответ:
 (1) ошибка создания окна: не указан параметр height 
 (2) ошибка создания окна: неправильно задан параметр status 
 (3) имя файла в атрибуте HREF должно совпадать с именем файла в window.open() 
 (4) нет ошибки 
Номер 2
Определите ошибку:
<A HREF=»1.htm» onClick=»window.open(‘2.htm’, ‘ku’,
‘status=yes,scrollbars=1,height=yes’)»>Ссылка</A>
Ответ:
 (1) ошибка создания окна: не указана ширина открываемого окна 
 (2) ошибка создания окна: недопустимое значение параметра height 
 (3) нет ошибки 
Номер 3
Определите ошибку:
<A HREF=»1.htm» onClick=»window.open(«2.htm», «», «location=0,menubar=yes»)»>Ссылка</A>
Ответ:
 (1) ошибка создания окна: недопустимое значение параметра location 
 (2) ошибка создания окна: не задано имя окна 
 (3) синтаксическая ошибка в аргументах метода window.open() 
 (4) нет ошибки 
Упражнение 7:
Номер 1
Что возвращает метод prompt()?
Ответ:
 (1) строку, введенную пользователем в окне запроса 
 (2) значение true/false 
 (3) ничего (т.е. undefined) 
Номер 2
Что возвращает метод confirm()?
Ответ:
 (1) строку, введенную пользователем в окне запроса 
 (2) значение true/false 
 (3) ничего (т.е. undefined) 
Номер 3
Что возвратит метод confirm(), если пользователь просто закроет окно запроса?
Ответ:
 (1) значение true 
 (2) значение false 
 (3) ничего не возвратит (т.е. undefined) 
 (4) будет выдана ошибка браузера 
Упражнение 8:
Номер 1
Что будет, если не указать параметры метода window.open()?
Ответ:
 (1) будет открыто новое пустое окно 
 (2) получим сообщение об ошибке 
 (3) отсутствие реакции 
Номер 2
Что будет, если открыть окно с именем уже существующего окна?
Ответ:
 (1) будет создано новое окно 
 (2) будет выдано сообщение об ошибке 
 (3) в новое окно загрузится пустой документ 
 (4) окно с этим именем получит фокус и будет возвращена ссылка на это окно 
Номер 3
Что возвращает метод window.open()?
Ответ:
 (1) URL-адрес страницы, открытой в новом окне 
 (2) объект класса Window, ассоциированный с открытым окном 
 (3) имя открытого окна, которое можно использовать в атрибуте TARGET ссылок 
Упражнение 9:
Номер 1
Что нужно передавать в качестве аргументов методу clearTimeout()?
Ответ:
 (1) строку, содержащую JavaScript-код, и время отсрочки в миллисекундах 
 (2) ссылку на созданный ранее поток вычислений 
 (3) ссылку на открытое ранее окно 
Номер 2
Что нужно передавать в качестве аргумента методу clearInterval()?
Ответ:
 (1) строку, содержащую JavaScript-код, и интервал отсрочки в миллисекундах 
 (2) ссылку на созданный ранее поток вычислений 
 (3) ссылку на открытое ранее окно 
Номер 3
Что делает метод setTimeout()?
Ответ:
 (1) позволяет однократно выполнить некоторый JavaScript-код с отсрочкой 
 (2) позволяет выполнять некоторый JavaScript-код с указанным периодом 
 (3) устанавливает текущее время, указанное в аргументе 
Номер 4
Что делает метод setInterval()?
Ответ:
 (1) позволяет однократно выполнить некоторый JavaScript-код с отсрочкой 
 (2) позволяет выполнять некоторый JavaScript-код с указанным периодом 
 (3) устанавливает текущее время, указанное в аргументе 
Упражнение 10:
Номер 1
Как из окна, открытого с помощью window.open(), обратиться ко 2-й форме окна-предка?
Ответ:
 (1) window.opener.forms[2] 
 (2) window.opener.forms[1] 
 (3) self.opener.forms[1] 
 (4) window.top.forms[1] 
Номер 2
Окно разделено на два фрейма с именами left и right. Как из правого фрейма обратиться к 3-й картинке левого фрейма?
Ответ:
 (1) window.left.document.images[2] 
 (2) top.document.left.images[2] 
 (3) right.left.document.images[2] 
 (4) top.left.document.images[2] 
 (5) top.frames[‘left’].document.images[2] 
 (6) parent.left.document.images[2] 
При разработке одного сайта столкнулся с необходимостью проверить работу функции window.open в разных браузерах. Результаты решил оформить и выложить, глядишь кому понадобится, а кто и дополнит, что ещё лучше…
Для тестирования использовались: FireFox 3 beta 3, Netscape Navigator 9, Internet Explorer 6, Opera 9 и Konqueror 3.5 (тест Safari отдельно, в конце топика). При этом FireFox 3 тестировался в двух конфигурациях: по умолчанию и c TabMixPlus (с разрешением открывать popup-ы в новых окнах). Рабочая среда: KDE 3.5 на Debian.
1. Вызов без параметров
Первой использовалась конструкция:
window.open(‘https://www.w3.org/’, ‘popup’);
FireFox 3 (TMP)
Открыл полноразмерное окно, развернутое на весь экран (как и родительское).
FireFox 3
Открыл новую вкладку.
Navigator 9
Открыл полноразмерное окно, развернутое на весь экран (как и родительское).
Opera 9
Открыла новую вкладку.
IE 6
Открыл полноразмерное окно, развернутое на весь экран (как и родительское).
Konqueror
Открыл окно с размером по умолчанию (родительское окно было развёрнуто на весь рабочий стол).
2. Размеры окна
Теперь я задал размеры новому окну.
window.open(‘https://www.w3.org/’, ‘popup’, ‘width=640,height=480’);
FireFox 3 (и с TMP и без)
Открыли окно с областью просмотра 640×480 пикселей. В окне отображается строка состояния и адресная строка (неактивная).
Само окно превышает заданный размер за счёт строки состояния, адресной строки, заголовка и границ окна. Размеры окна изменяемы.
Navigaror 9 и Konqueror
Открыли окно с областью просмотра 640×480 пикселей. Само окно превышает заданный размер за счёт заголовка и границ окна.
Размеры окна изменяемы.
Opera 9
Открыла окно с областью просмотра 640×480 пикселей. Само окно превышает заданный размер за счёт заголовка и границ окна.
Так же в коне присутствует небольшая панель, при нажатии разворачивающаяся в панель навигации. При этом сокращается область просмотра, а размеры окна не меняются. Размеры окна изменяемы (имеется ввиду пользователем, при помощи мыши).
IE 6
Открыл окно с областью просмотра 640×480 пикселей. Само окно превышает заданный размер за счёт заголовка и границ окна. Размеры окна НЕ изменяемы.
* * *
Теперь я задал окну размеры, заведомо превышающие разрешение монитора.
window.open(‘https://www.w3.org/’, ‘popup’, ‘width=2000,height=1200’);
FireFox 3, Navigator 9, Konqueror
Открыли окно, развёрнутое на весь рабочий стол. В FF3 в окне отображается строка состояния и адресная строка (неактивная).
Opera 9
Открыла новую вкладку.
IE 6
Открыл окно, закрывшее собой весь экран, включая все панели (задач, меню и т.д.). Заголовок окна за пределами экрана.
Выводы
- Все браузеры расценивают заданный размер как размер области просмотра.
- Реальные размеры окна всегда больше заданных, причём разница варьируется для разных браузеров, за счёт наличия дополнительных панелей.
- В Internet Explorer 6 нельзя вручную изменить размеры окна. Кстати, это правильное поведение window.open, т.к. все параметры, не указанные в вызове этой функции должны считаться равными «no» (включая resizable). Хотя это и не всегда удобно с точки зрения пользователя.
- Необходимо следить за размером открываемого окна, т.к. при большом размере в IE6 оно может перекрыть пользователю весь рабочий стол
3. Позиционирование
Следующие на очереди — координаты окна. Для этого существуют две пары свойств — left и top в IE и screenX и screenY для NN.
Поочерёдно я попробовал каждую пару во всех браузерах.
window.open(‘https://www.w3.org/’, ‘popup’, ‘width=320,height=240,left=50,top=50’);
FireFox 3, Navigator 9, IE6, Konqueror
Все четыре браузера поняли свойства left и top и спозиционировали окно относительно верхнего левого угла экрана.
Не смотря на эту точку отсчёта, ни один из браузеров, при top = 0 не смог перекрыть окном панель меню.
Opera 9
Тоже поняла свойства left и top, но позиционировала окно относительно своей панели вкладок (отсчёт идёт от нижнего края).
window.open(‘https://www.w3.org/’, ‘popup’, ‘width=320,height=240,screenX=50,screenY=50’);
Эти свойства поняли только Gecko-барузеры (FF и NN), Opera и IE их проигнорировали.
Интересно поведение при попытке задать позицию явно превышающую размеры экрана.
window.open(‘https://www.w3.org/’, ‘popup’, ‘width=320,height=240,left=2000,top=1000’);
FireFox 3, Navigator 9, Opera
Открыли окно в нижнем правом углу рабочего стола (Opera — своей рабочей области). Окно видно целиком. Панели не перекрыты.
Konqueror
Окрыл окно в верхнем левом углу рабочего стола. Панели не перекрыты.
IE6
Проверить не удалось. IE просто переставал открывать окна до принудительного снятия процесса.
Выводы
- Для позиционирования окна следует использовать свойства left и top, т.к. их понимают все барузеры.
- Opera позиционирует окна не относительно экрана, а относительно своей панели вкладок.
- Лучше стараться избегать ситуаций когда окно не поместится на рабочем столе, т.к. поведение браузеров разнится.
4. Элементы интерфейса
Последними я проверил управление элементами интерфейса (исключив элементы, специфичные для конкретного браузера):
- location — поле для набора URL
- menubar — панель меню
- scrollbars — полосы прокрутки
- status — строка состояния
- toolbar — панель с кнопками Back, Forward, Reload и т.д.
Каждый параметр пробовался как со значением yes, так и no.
FireFox 3
- location — отображается всегда и всегда неактивно, параметр игнорируется
- menubar — отображается главное меню
- scrollbars — появляются полосы прокрутки
- status — игнорируется, строка состояния показывается всегда
- toolbar — строка URL страла активной, появилась панель вкладок и дополнительные панели (WebDeveloper)
Navigator 9
- location — отображается неактивным. Дополнительно отобразилась одна из панелей инструментов (WebDeveloper)
- menubar — отображается главное меню
- scrollbars — появляются полосы прокрутки
- status — появляется строка состояния
- toolbar — строка URL страла активной, появилась панель вкладок и дополнительные панели (WebDeveloper)
Opera 9
- location — отображается активное поле ввода и кнопки «Назад», «Вперёд» и т.д.
- menubar — игнорируется
- scrollbars — появляются полосы прокрутки
- status — игнорируется
- toolbar — игнорируется
IE 6
- location — отображается активное поле ввода, главное меню и кнопки «Назад», «Вперёд» и т.д.
- menubar — отображается главное меню
- scrollbars — появляются полосы прокрутки
- status — появляется строка состояния
- toolbar — отображается главное меню и панель инструментов
Konqueror
- location — отображается всегда и всегда неактивно, параметр игнорируется
- menubar — отображается главное меню и панель инструментов
- scrollbars — появляются полосы прокрутки
- status — появляется строка состояния
- toolbar — отображается главное меню и панель инструментов
Выводы предоставляю делать самим. Хотя на мой взгляд, IE здесь демонстрирует более правильную реализацию функции window.open.
Safari
(спасибо qnick)
Safari 3.0.4 (5523.15), mac os 10.5.2
От галочки «Блокировать всплывающие окна» поведение не меняется абсолютно. Если ссылки жать вместе с яблоком (принудительное открытие окна в новой вкладке), то все равно появляются новые окна.
Без параметров: размеры по умолчанию, позиция на 32 пикселя (примерно, на глаз) ниже и правее текущего окна (но если нижняя граница текущего окна очень близко находится от нижней границы экрана, то у нового окна top=0), тулбар, скролл и статусная строка в наличии, окно тянется во все стороны
Размеры 640х480: исчезли тулбар, скролл и статусная строка, окно перестало тянуться. Позиция на 32 пикселя ниже и правее текущего (или top=0, см. выше), размеры 640х480 + 32 пиксела заголовка.
Очень большой размер: размер изменился на 1440х900 (разрешение экрана), top=0 независимо от положения текущего окна. Все остальное по прежнему.
Позиционирование: отсчет идет от верхнего левого угла минус меню, т.е.
В стиле Netscape: то же самое
Вне рабочего стола: left=0, top=0
Location: появилась адресная строка и тулбар, скролла нет, размеры менять нельзя.
Menubar: игнорируется, т.е. аналогично размеру 640х480.
Scrollbars: то же, что и размер 640х480, но появился вертикальный скролл
Status: то же, что и размер 640х480, но появился статусбар.
Toolbar: то же, что и location.
Окончанние
Будет очень здорово, если кто-нибудь дополнит тестами на других браузерах и платформах, в первую очередь конечно в Ineternet Explorer 7 под Windows.
P.S.
На закуску обнаружил новшество в FireFox3 — теперь по умолчанию JavaScript не может изменять размеры и позицию окна. Для разрешения этого требуется занести сайт в список исключений.