Основы программирования на JavaScript | страница 34
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
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, которая позволяет открывать новое окно браузера и, для некоторых свойств управлять его выводом. Блокировщики всплывающих окон очень часто будут препятствовать открытию окна с помощью window.open, если в этот процесс не вовлечен щелчок мышью. Поэтому, если в коде имеется вызов window.open и при этом пользователь не щелкает на ссылке или чем-то подобном, то скорее всего это не будет работать. Функция window.open получает до 3 аргументов: URL окна, которое надо открыть, имя окна и свойства окна.
var newWindow=window.open('', 'newWindow', 'width=200,height=200');
newWindow.document.write('Это окно будет закрыто через 2 секунды');
setTimeout(function(){ newWindow.close(); }, 2000); Третий аргумент window.open получает строку аргументов. Обычно используются следующие: