10 ответов:
да
document.location = "http://my.new.url.com"вы также можете извлекать его таким же образом, например.
var myURL = document.location; document.location = myURL + "?a=parameter";объект location также имеет ряд полезных свойств:
hash Returns the anchor portion of a URL host Returns the hostname and port of a URL hostname Returns the hostname of a URL href Returns the entire URL pathname Returns the path name of a URL port Returns the port number the server uses for a URL protocol Returns the protocol of a URL search Returns the query portion of a URLEDIT: Установка хэша документа.расположение не должно перезагружать страницу, просто измените, где на странице находится фокус. Так что обновление до
#myIdбудет прокручиваться до элемента сid="myId". Еслиidне существует я верю, что ничего не произойдет? (Нужно подтвердить на различных браузерах хотя)EDIT2: чтобы было понятно, а не только в комментарии: Вы не можете обновить весь URL с помощью javascript без изменения страницы, это ограничение безопасности. В противном случае вы можете нажать на ссылку на случайную страницу, созданную так, чтобы выглядеть как gmail, и мгновенно изменить URL-адрес www.gmail.com и украсть регистрационные данные людей.
Вы можете изменить часть после домена в некоторых браузерах, чтобы справиться с вещами стиля AJAX, но это уже связано с помощью Осирис. Более того, вы, вероятно, не должны этого делать, даже если бы могли. URL-адрес указывает пользователю, где он/она находится на вашем сайте. Если вы измените его без изменения содержимого страницы, это становится немного запутанным.
да и нет. Все общие веб-браузеры имеют меры безопасности, чтобы предотвратить это. Цель состоит в том, чтобы помешать людям создавать реплики веб-сайтов, изменить URL-адрес, чтобы он выглядел правильно, а затем иметь возможность обманывать людей и получать их информацию.
однако некоторые HTML5 совместимые веб-браузеры реализовали API истории, который можно использовать для чего-то похожего на то, что вы хотите:
if (history.pushState) { var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?myNewUrlQuery=1'; window.history.pushState({path:newurl},'',newurl); }Я проверил, и он работал нормально. Он не перезагружает страницу, но это только позволяет изменить URL-запрос. Вы не сможете изменить значения протокола или хоста.
для получения дополнительной информации:
http://diveintohtml5.info/history.html
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history
да
документ.расположение-это нормальный путь.
документ.расположение фактически то же самое, что и окно.расположение, за исключением окна.расположение немного более поддерживается в старых браузерах, поэтому может быть предпочтительным выбором.проверьте эту тему на SO для получения дополнительной информации:
в чем разница между окном.местонахождение и документ.расположение в JavaScript?
префикс URL изменяется с хэштегом, чтобы избежать перенаправления.
Это перенаправляет
location.href += '&test='true';это не перенаправляет
location.href += '#&test='true';
простой javascript: документ.location = 'http://www.google.com';
Это вызовет обновление браузера, хотя-рассмотрите возможность использования хэшей, если вам нужно обновить URL-адрес для реализации какой-то истории просмотра без перезагрузки страницы. Возможно, вы захотите заглянуть в jQuery.hashchange если это так.
вам нужно быть более конкретным. Что вы подразумеваете под "обновить URL"? Это может означать автоматическую навигацию на другую страницу, что, безусловно, возможно.
Если вы хотите просто обновить содержимое адресной строке без перезагрузки страницы, видим изменить URL-адрес без перезагрузки страницы
определите новый объект URL, назначьте ему текущий url, добавьте свои параметры к этому объекту URL и, наконец, переместите его в состояние браузера.
var url = new URL(window.location.href); //var url = new URL(window.location.origin + window.location.pathname) <- flush existing parameters url.searchParams.append("order", orderId); window.history.pushState(null, null, url);
Comments