Значением этого свойства является объект типа 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
#permalinkalert(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немогу понять что это означает:
Автор: Гость (не зарегистрирован), дата: 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# - и НЕ ЧИСТИТ этот чертов завершающий #
Попробовал "обмануть":
if (myhash.length < 1) { var mypath = String(window.location.pathname); if (mypath.length < 2) window.location.hash=''; }результат аналогичный: site.com/# решетка гордо в URL
Автор: 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 он не как не реагирует. Может я что то не понимаю!!