Справочник javascript: window.location

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP  

window.location

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

Описание, примеры

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

Объект Location

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

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

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

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

Все следующие свойства являются строками.
Колонка "Пример" содержит их значения для URL:

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

В Firefox есть баг: если hash-компонент адреса содержит закодированные (см. encodeURIComponent) символы, свойство hash возвращает раскодированный компонент. Например, вместо %20 будет пробел и т.п. Другие браузеры ведут себя корректно и не раскодируют hash.

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

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

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

Пример: перейти на документ по адресу

function goJs() { 
   window.location = "http://javascript.ru"
}

Пример: вывести свойства текущего location

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'));
}

Пример: сделать запрос с новыми параметрами

function sendData(dat)
{
  window.location.search = dat;
}

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


Автор: Гость (не зарегистрирован), дата: 27 октября, 2009 - 15:12

#permalink

Как можно получить параметр из URl? Только в ручную разбирая search


Автор: Vladimir_O, дата: 11 декабря, 2009 - 17:29

#permalink

кстати объект document тоже содержит в себе ссылку на объект location.


Автор: helichrysum (не зарегистрирован), дата: 17 декабря, 2009 - 11:12

#permalink

Кто знает как запретить чужому сайту из фрейма трогать location.
Если кто не понял, в чем дело, попробуйте Яндекс во фрейм положить...



Автор: Бобр, дата: 22 января, 2010 - 20:41

#permalink

Существует ли простой способ разбора параметров location.search ?
То есть функция, я ей - параметр, она мне - его значение.

Если стандартной такой функции не существует, то наверняка уже кто-то писал такую функцию. Чего мне велосипед то изобретать? Поделитесь, пожалуйста.




Автор: nofx, дата: 9 ноября, 2010 - 22:32

#permalink

а как cделать так,чтобы location.href=cсылка , загружало ссылку в определенный фрейм (то есть target)?


Автор: guitarslave, дата: 21 декабря, 2010 - 23:34

#permalink

В статье описан баг в firefox'e, никто не знает как его пофиксить? Очень надо! Заранее спасибо!


Автор: Барин, дата: 26 декабря, 2010 - 15:46

#permalink

alert(window.location.hash) -
в ИЕ нормально возвращает, то что идёт после решётки, остальные браузеры возвращают пустоту. Подскажите, пожалуйста, что можно с этим сделать.


Автор: Гость (не зарегистрирован), дата: 28 декабря, 2010 - 14:05

#permalink

Подскажите пожалуйста, можно ли сделать что бы было выпадающее меню с ссылками а при нажатии на ссылку они выгружались в Iframe?


Автор: Sa1ntass (не зарегистрирован), дата: 5 января, 2011 - 18:40

#permalink

Хммм... А как сделать что бы пользователь переходил не на ту странице ссыль которой нажал а на другую используя javascript который будет записываться в адрессную строку.


Автор: Гость (не зарегистрирован), дата: 17 марта, 2011 - 17:55

#permalink

есть

как в a.js понять какой query ему отдали, ибо location.search - содержит есессно query основной страницы, и не подходит?


Автор: Гость (не зарегистрирован), дата: 17 марта, 2011 - 17:55

#permalink

есть < script src='a.js?some'> < /script>

как в a.js понять какой query ему отдали, ибо location.search - содержит есессно query основной страницы, и не подходит?





Автор: Гость (не зарегистрирован), дата: 3 марта, 2012 - 22:43

#permalink

При перезагрузке страницы, с помощью метода reload, post данные повторно передаются?


Автор: false2012 (не зарегистрирован), дата: 26 апреля, 2012 - 11:19

#permalink

немогу понять что это означает:

<html><head></head><body onload="window.location.replace(window.location.toString())"></body></html>


Автор: Гость (не зарегистрирован), дата: 30 апреля, 2012 - 13:35

#permalink

Здравствуйте. Помогите, пожалуйста. Никак не могу сообразить. Мне надо, чтобы по нажатию кнопки шел просчитывались данные и шел переход на другую страницу. У меня переходит на другую страницу, но берет устаревшую из кэша, для просмотра обновленных данных приходится перезагружать страницу вручную. А можно как-нибудь переходить сразу на обновленную страницу или сделать последовательно: сначала переход на другую страницу, а потом её автоматическое обновление?


Автор: Гость (не зарегистрирован), дата: 30 апреля, 2012 - 14:36

#permalink

А как из вот такого: %D0%AE%D1%80%D0%B8%D0%B9 получить нормальный текст?


Автор: Гость (не зарегистрирован), дата: 13 августа, 2012 - 19:19

#permalink

При входе на сайт выдает вот такой код: Что делать?

С этим XML-файлом не связана ни одна таблица стилей. Ниже показано дерево элементов.

var ad=window.location.href.replace(/#(.*)?/,''); setTimeout("window.location.href='"+ad+"?lIE9tp'",'1000')


Автор: Axdr, дата: 30 августа, 2012 - 00:40

#permalink

Со свойством hash какая-то чехарда. Причем, в разных браузерах по-разному.
Если после решетки что-то есть, то hash включает решетку. Если нет, то не включает, кроме IE8. Зато в IE8 пишешь window.location.hash = "", получаешь window.location.hash - "#"


Автор: cost1k, дата: 13 ноября, 2012 - 15:24

#permalink

подскажите, как открыть ссылку window.location = '...' в новом табе (как через тег с атрибутом target="_blank").


Автор: VorteX DrAgON (не зарегистрирован), дата: 22 ноября, 2012 - 07:40

#permalink

параметры, которые передавались в явном виде получить можно - это хорошо. А вот можно ли получить скрытые параметры, которые через POST передавались и сидят "внутри" браузера и не отображены в url?


Автор: arzai (не зарегистрирован), дата: 13 января, 2013 - 23:46

#permalink

Почему-то после использования location не работает клавиша backspace.

Например после window.location.assign(путь); открывается новая страница, кнопка "назад" в браузере работает, а клавиши backspace - нет. Как сделать, чтобы после перехода backspace работала?


Автор: ВЕТЕРИНАР (не зарегистрирован), дата: 13 мая, 2013 - 15:47

#permalink

Как сделать указание на текущую страницу в браузере?


Автор: zema888, дата: 7 августа, 2013 - 07:27

#permalink

Выше спрашивали: " У меня переходит на другую страницу, но берет устаревшую из кэша, для просмотра обновленных данных приходится перезагружать страницу вручную. А можно как-нибудь переходить сразу на обновленную страницу или сделать последовательно: сначала переход на другую страницу, а потом её автоматическое обновление?"
У меня такая же проблема, но рецепт написанный там "Добавь в ссылку параметр
'&Random=' + new Date().getTime()
Каждый раз при клике Url будет отличаться и страница не будет браться из кэша"
мне не помогает.
Может как то можно заставить браузер обновить кеш? alert() помогает, но мне надо ,чтоб автоматически работала, не кому будет ок нажать.


Автор: olegalimov, дата: 10 октября, 2015 - 18:36

#permalink

почему по этой строке не переводит посетителя?

echo '<script language="javascript"> window.location("https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'");</script>';

Автор: Alexander Lutsenko (не зарегистрирован), дата: 11 июня, 2016 - 20:36

#permalink

Не подскажете. location.pathname главной страницы сайта всегда возвращает "/"?


Автор: LouD (не зарегистрирован), дата: 2 января, 2017 - 11:30

#permalink

Вот по прочитанному вопрос по свойству hash.
Задача: как убрать финальный пустой хэш (вида site.com/page.html#)?
Решения чистить адресную строку от хэшей не подходят - если значение якоря заполнено, то этот функционал нужен.
Соответственно по этой причине не годится и

history.pushState('', document.title, window.location.pathname);

То есть надо чистить: site.com/page.html# -> site.com/page.html
Но надо оставить: site.com/page.html#anchor

Испробовал вот такой "лобовой" вариант

var myhash = String(window.location.hash);
    if (myhash.length < 1) window.location.hash='';

так вот myhash.length возвращает 0 и при отсутствии хэша, и при варианте site.com/# и при варианте site.com/page.html# - и НЕ ЧИСТИТ этот чертов завершающий # Sad

Попробовал "обмануть":

if (myhash.length < 1) {
        var mypath = String(window.location.pathname);
        if (mypath.length < 2) window.location.hash='';
    }

результат аналогичный: site.com/# решетка гордо в URL Sad


Автор: LouD (не зарегистрирован), дата: 2 января, 2017 - 18:48

#permalink

Решением оказался вот такой ход:

var m = window.location.href.match(/([^#]+)#$/);

if ( m !== null ) {
    window.location.replace(m[1]);
}

Теперь завершающий пустой хэш остается только, если вызывается та же самая страница, то есть без перехода на новый URL (например, на ссылке "Домой" остался такой аппендикс).


Автор: forsstar, дата: 9 января, 2017 - 10:19

#permalink

Для простого получения адреса текущей, обобразится на экране, стрницы -

document.write(location ); // получить адрес текущей страницы


Автор: Drakonoved (не зарегистрирован), дата: 25 августа, 2017 - 10:11

#permalink

У меня с некоторых компов значение document.location.hostname == null.
Это при первой загрузке страницы, если страницу обновить, то встает нормальное значение, но скрипт-то отрабатывается в первый раз.
Из-за чего такое может быть?


Автор: mario games (не зарегистрирован), дата: 25 октября, 2019 - 18:14

#permalink

Здравствуйте. Помогите, пожалуйста. Никак не могу сообразить. Мне надо, чтобы по нажатию кнопки шел просчитывались данные и шел переход на другую страницу. У меня переходит на другую страницу, но берет устаревшую из кэша, для просмотра обновленных данных приходится перезагружать страницу вручную. А можно как-нибудь переходить сразу на обновленную страницу или сделать последовательно: сначала переход на другую страницу, а потом её автоматическое обновление?


Автор: Гость (не зарегистрирован), дата: 16 января, 2020 - 15:55

#permalink

Всем привет.
У меня есть аудио поток m3u и когда переключаешься с wifi на 3g он прекращается и выдает ошибку:
Failed to load resource: net::ERR_NETWORK_CHANGED

Можно ли как то скриптом чекать эту ошибку и если она есть то перезагружать не страницу а область () ?


Автор: ausmalbilder (не зарегистрирован), дата: 1 марта, 2020 - 16:20

#permalink

Приветствуются комментарии:
Полезные.
Дополняющие прочитанное.
Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.


Автор: Никита Трохимчук (не зарегистрирован), дата: 25 мая, 2022 - 20:45

#permalink

Здравствуйте, у меня проблема где только не искал ответа! Значит так
Если пользователь нажал на гиперссылку . Тогда ему вылазит окно для ввода пароля. Если пользователь ввел правильный пароль тогда его перекидывает на страницу(это важно если правильно ввел), но если неправильно тогда текст, можно и страницу-ошибку, это не сильно важно. Я выбрал гиперссылку потому, что input выглядит скучно, а a href по интересней. Кто может подскажите пожалуйста я уже где только не искал ответ. Пробовал сделать развилку if else, но к сожалению на windows.location он не как не реагирует. Может я что то не понимаю!!


 
Поиск по сайту
Содержание

Дерево всех статей

Последние темы на форуме
Forum