действия означает также, что переменная соединена непосредственно с объектом window. Любой код JavaScript, который не находится внутри какой-то функции, находится в глобальном объекте window.
В связи с этим не требуется писать window при обращении к функциям или переменным объекта window, как в случае использования некоторых других функций, таких, как document.getElementById. alert() является примером функции, которую можно вызвать либо как window.alert(), либо просто alert().
Прежде всего объект window предоставляет доступ к информации об окне:
Свойство | Описание |
---|---|
window.location | возвращает текущий URL окна |
window.opener | Если окно было открыто другим окном (с помощью window.open), то возвращается ссылка на открывающее окно, иначе null |
MSIE: window.screenTop Другие: window.screenY | Возвращает верхнюю позицию окна. Отметим, что эти значения в MSIE существенно отличаются от других браузеров. MSIE возвращает верхнюю позицию области содержимого (ниже адресной строки, кнопок, и т.д.). Другие браузеры возвращают верхнюю позицию реального окна (выше кнопки закрытия) |
MSIE: window.screenLeft Другие: window.screenX | Возвращает левую позицию окна с такими же различиями, как и для screenTop и screenY |
Положение окна на экране пользователя редко бывает необходимо, но два других свойства, location и opener, будут очень полезны. Свойство window.location выполняет две функции. Если изменить его с помощью JavaScript, например, window.location='http://www.htmlgoodies.com', то браузер будет перенаправлен на эту страницу. Чтение window.location выдает адрес текущего документа. Зачем это нужно знать? Обычно адрес страницы не нужен, но может потребоваться строка запроса или анкер. Возьмем, например, следующий URL:
http://www.somesite.com/page.asp? action=browse&id=5#someAnchor.
Этот URL можно разбить на три части:
URL: | http://www.somesite.com/page.asp |
Строка запроса: | action=browse&id=5 |
Анкер: | someAnchor |
Так как window.location содержит всю эту информацию, то можно написать функцию, которая будет возвращать переменную querystring (строку запроса). Это аналогично request.querystring в ASP или $_GET в PHP, если вы знакомы с каким-либо из этих языков:
function queryString(val){
var q = unescape(location.search.substr(1)).split('&');
for(var i=0; i<q.length; i++){
var t=q[i].split('=');
if(t[0].toLowerCase()==val.toLowerCase()) return t[1];
}
return '';
}
Для предыдущего URL функция queryString('action') вернет 'browse'. Мы видим здесь новую функцию window.unescape. Функция unescape, а также ее дополнительная функция escape, используются в соединении с window.location. При передаче данных в строке запроса она должна быть экранирована (escaped), чтобы она не влияла на саму строку запроса. Если, например, среди данных имеется знак амперсанд (&), то необходимо его экранировать, чтобы можно было различить этот знак в данных и тот &, который разделяет два различных значения. Функция escape подготавливает посылаемые данные для использования в качестве значения querystring, поэтому она используется при задании window.location. Например:
window.location='/page.asp?name='+escape(SomeInputBox.value);
Функция unescape делает обратное и позволяет получить 'нормальный' текст из window.location.
Вернемся к свойствам window, где имеется свойство opener. Это свойство используется в соединении с обычно используемой функцией window.open, которая позволяет открывать новое окно браузера и, для некоторых свойств управлять его выводом.