window.location

25.02.2010

Получает/устанавливает URL окна и его компоненты

Значением этого свойства является объект типа Location.

Объект Location:

Метод toString этого объекта возвращает URL, а различные свойства позволяют получить/установить отдельные компоненты адреса.

Для некоторых строковых операций необходимо явно преобразовать Location к строке:

window.location.toString().charAt(17)

Свойства объекта Location

Все следующие свойства являются строками.
Пример URL:

  • http://www.oddler.ru:80/search?q=javascript#test
Свойство Описание Пример
hash часть URL, которая идет после символа решетки '#', включая символ '#' #test
host хост и порт www.oddler.ru:80
href весь URL http://www.oddler.ru:80/search?q=javascript#test
hostname хост (без порта) www.oddler.ru
pathname

строка пути (относительно хоста) /search
port номер порта 80
protocol протокол http:
search часть адреса после символа ?, включая символ ? ?q=javascript

Методы объекта Location

assign(url)
загрузить документ по данному url
reload([forceget])
перезагрузить документ по текущему URL. Аргумент forceget - булево значение, если оно true, то документ перезагружается всегда с сервера, если false или не указано, то браузер может взять страницу из своего кэша.
replace(url)
заменить текущий документ на документ по указанному url. Разница, по сравнению с assign() заключается в том, что после использования replace() страница не записывается в истории посещений. В частности, это значит, что посетитель не сможет использовать для возврата кнопку браузера "Назад".
toString()
возвращает строковое представление URL для объекта Location

При изменении любых свойств window.location, документ будет перезагружен, как если бы для модифицированного url был вызван метод window.location.assign().

Пример 1: перейти на документ по адресу
1
2
3
4
function goJs()
{ 
  window.location = "http://oddler.ru"
}

Пример 2: вывести свойства текущего location
1
2
3
4
5
6
7
8
9
10
11
12
13
function showLoc()
{
  var x = window.location;
  var t = ['Property - Typeof - Value',
           'window.location - ' + (typeof x) + ' - ' + x ];

  for (var prop in x)
  {
    t.push(prop + ' - ' + (typeof x[prop]) + ' - ' +  (x[prop] || 'n/a'));
  }

   alert(t.join('\n'));
}

Пример 3: сделать запрос с новыми параметрами
1
2
3
4
function sendData(dat)
{
  window.location.search = dat;
}

При вызове sendData('My Data') на сервер оправится строка
с параметрами "?My%20Data".


Категории: JavaScript
Яндекс.Метрика