Получить текущий URL с помощью JavaScript?

2778

Все, что я хочу, это получить URL-адрес веб-сайта. Не URL-адрес, взятый из ссылки. При загрузке страницы мне нужно иметь возможность захватить полный, текущий URL-адрес веб-сайта и установить его как переменную, с которой мне нужно.

Теги:
url

23 ответа

3442
Лучший ответ

Использование:

window.location.href 

Как отмечено в комментариях, строка ниже работает, но она содержит ошибки для Firefox.

document.URL;

Смотрите URL типа DOMString, только для чтения.

  • 139
    В Firefox 12 свойство document.URL не обновляется после привязки window.location к якору (#), а window.location.href . Я собрал демонстрационную версию здесь: jsfiddle.net/PxgKy. Я не тестировал другие версии Firefox. Проблем с использованием document.URL в Chrome 20 и IE9 не обнаружено.
  • 80
    также вы можете получить хост и очистить местоположение: window.location.host и window.location.href.toString().split(window.location.host)[1]
Показать ещё 6 комментариев
564

Доступ к информации URL

JavaScript предоставляет вам множество методов для извлечения и изменения текущего URL, который отображается в адресной строке браузера. Все эти методы используют объект Location, который является свойством объекта Window. Вы можете создать новый объект Location с текущим URL следующим образом:

var currentLocation = window.location;

Основная структура URL

<protocol>//<hostname>:<port>/<pathname><search><hash>
  • протокол: указывает имя протокола, которое будет использоваться для доступа к ресурсу в Интернете. (HTTP (без SSL) или HTTPS (с SSL))

  • hostname: имя хоста указывает хост, которому принадлежит ресурс. Например, www.stackoverflow.com. Сервер предоставляет услуги, используя имя хоста.

  • порт: номер порта, используемый для распознавания определенного процесса, которому должно быть переслано Интернет или другое сетевое сообщение при поступлении на сервер.

  • pathname: путь содержит информацию о конкретном ресурсе хоста, к которому веб-клиент хочет получить доступ. Например, /index.html.

  • query: Строка запроса следует за компонентом пути и предоставляет строку информации, которую ресурс может использовать для каких-либо целей (например, в качестве параметров для поиска или в качестве данных для обработки).

  • hash: Якорная часть URL, включает знак хеша (#).

С помощью этих свойств объекта Location вы можете получить доступ ко всем этим компонентам URL, а также к тому, что они могут устанавливать или возвращать:

  • href - весь URL
  • протокол - протокол URL
  • host - имя хоста и порт URL
  • hostname - имя хоста URL
  • порт - номер порта, который сервер использует для URL
  • pathname - путь к URL
  • search - поисковая часть URL
  • hash - якорная часть URL

Я надеюсь, что вы получили свой ответ..

  • 5
    Это не «методы» window.location , а свойства, и здесь у нас есть пример : var stringPathName = window.location.pathname .
  • 0
    @FabioC. Вы можете удалить его по substring . Однако это может быть полезно, если вы хотите использовать для перенаправления document.location = "/page.html"; будет перенаправлять на корневую страницу page.html
Показать ещё 3 комментария
312

Тот же вопрос был задан менее 24 часов назад. Процитировать:

Используйте window.location для чтения и напишите доступ к месту объектсвязанных с текущим фреймом. Если вы просто хотите получить адрес как только для чтения, вы можете использовать document.URL, который должен содержать то же значение, что и window.location.href.

252

Получает текущий URL страницы:

window.location.href
  • 3
    Обратите внимание, что это местоположение окна, а не документа.
  • 14
    Это то же самое. Полный текущий URL ссылается на путь к документу (внешний адрес).
Показать ещё 3 комментария
36

Чтобы получить путь, вы можете использовать:

console.log('document.location', document.location.href);
console.log('location.pathname',  window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL
31

Откройте Инструменты разработчика, введите следующее в консоли и нажмите Ввести.

window.location

Ex: Ниже приведен снимок экрана на текущей странице.

Изображение 2022

Захватите то, что вам нужно отсюда.:)

27

Использование: window.location.href.

Как отмечено выше, document.URL не обновляет при обновлении window.location. См. MDN.

18
  • Используйте window.location.href, чтобы получить полный URL.
  • Используйте window.location.pathname, чтобы получить URL-адрес, покидающий хост.
  • 4
    window.location.pathname не включает запрос и хеш-фрагмент
14

ОК, получить полный URL текущей страницы легко, используя чистый JavaScript. Например, попробуйте этот код на этой странице:

window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"

Свойство window.location.href возвращает URL-адрес текущей страницы.

document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>

<body>
  <h2>JavaScript</h2>
  <h3>The window.location.href</h3>
  <p id="root"></p>
</body>

</html>

Просто неплохо бы упомянуть и это:

Также, если вам нужен относительный путь, просто используйте window.location.pathname;

И если вы хотите получить имя хоста, вы можете использовать window.location.hostname;

И если вам нужно получить протокол отдельно, просто сделайте window.location.protocol

Также, если на вашей странице есть hash тег, вы можете получить его как: window.location.hash

Итак, window.locatation.href обрабатывает все сразу... в основном:

window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
    //true

Также не нужно использовать window если оно уже находится в области видимости окна...

Итак, в этом случае вы можете использовать:

location.protocol

location.hostname

location.pathname

location.hash

location.href

Изображение 2023

14

Вы можете получить текущее местоположение URL с хэш-тегом, используя:

JavaScript:

 // Using href
 var URL = window.location.href;

 // Using path
 var URL = window.location.pathname;

JQuery

$(location).attr('href');
9
var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
       currentPageUrlIs = this.href.toString().toLowerCase(); 
}else{ 
       currentPageUrlIs = document.location.toString().toLowerCase();
}

Вышеупомянутый код также может помочь кому-то

  • 2
    Вы применили .toLowerCase () к URL, который фактически меняет его. Некоторые серверы чувствительны к регистру (Linux и т. Д.)
  • 0
    Вы должны многословно использовать window.href. Этот код работает только в контексте, где это окно ===, однако это может не всегда иметь место, особенно если кто-то вставил это решение.
Показать ещё 2 комментария
7

Добавление результата для быстрой справки

window.location;

 Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
 ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ, …}

document.location

  Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript", 
ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ
, …}

window.location.pathname

"/questions/1034621/get-the-current-url-with-javascript"

window.location.href

"https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript"

location.hostname

"stackoverflow.com"
7

Для полного URL-адреса с строками запроса:

document.location.toString().toLowerCase();

Для URL-адреса хоста:

window.location
  • 11
    Вы применили .toLowerCase () к URL, который фактически меняет его. Некоторые серверы чувствительны к регистру (Linux и т. Д.)
  • 0
    Как уже говорилось, вы не можете toLowerCase () URL, не нарушая его !!! Если URL-адрес server.com/path/to/Script.php?option=A1B2C3 , если файловая система чувствительна к регистру (Linux / Unix), не обязательно, что Script.php и script.php одинаковы. И даже если не учитывается регистр (Windows, некоторые Mac OS), «option = A1B2C3» - это не то же самое, что «option = a1b2c3» или даже «Option = A1B2C3». Только сервер нечувствителен к регистру: www.server.com или www.SeRvEr.cOm одинаковы.
Показать ещё 1 комментарий
4

В jstl мы можем получить доступ к текущему пути URL, используя pageContext.request.contextPath. Если вы хотите выполнить вызов Ajax, используйте следующий URL-адрес.

url = "${pageContext.request.contextPath}" + "/controller/path"

Пример: для страницы http://stackoverflow.com/posts/36577223 это даст http://stackoverflow.com/controller/path.

4

Способ получения текущего объекта местоположения window.location.

Сравните это с document.location, который изначально только возвращал текущий URL как строку. Вероятно, чтобы избежать путаницы, document.location был заменен на document.URL.

И все современные браузеры отображают document.location до window.location.

В реальности для обеспечения безопасности между браузерами вы должны использовать window.location, а не document.location.

0

    //use window.location.href


    var current_url = window.location.href;
    console.log("Full url :",current_url);
    console.log("path :",window.location.pathname); 
0

Получение текущего URL с помощью JavaScript:

  • window.location.toString();

  • window.location.href

0

ОК, получить полный URL-адрес браузера легко с помощью JavaScript. Например, попробуйте этот код на этой странице:

    window.location.href;
    //return http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"

Свойство window.location.href возвращает URL-адрес текущей страницы.

document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<h3>The window.location.href</h3>
<p id="root"></p>
</body>
</html>
0

Существует также следующее:

document.documentURI

В основном это все объясняет все выше.

0
   location.origin+location.pathname+location.search+location.hash;
0

Вы можете получить полную ссылку на текущую страницу через location.href и для получения связи текущего контроллера используйте:

location.href.substring(0, location.href.lastIndexOf('/'));
-1

если вы ссылаетесь на конкретную ссылку с идентификатором, этот код может вам помочь.

$(".disapprove").click(function(){
                      var id = $(this).attr("id");

                      $.ajax({
                          url: "<?php echo base_url('index.php/sample/page/"+id+"')?>",
                          type: "post",
                          success:function()
                          {
                            alert("The Request has been Disapproved");
                            window.location.replace("http://localhost/sample/page/"+id+"");
                          }
                      });
                });

Я использую здесь ajax для отправки идентификатора и перенаправления страницы с помощью window.location.replace. просто добавьте атрибут id="" как указано.

-2

Сначала проверьте, что страница полностью загружена в браузер, затем вызовите функцию, которая принимает URL, переменную URL и печатает на консоли,

$(window).load(function(){
   var url = window.location.href.toString();
   var URL = document.URL;
   var wayThreeUsingJQuery = $(location).attr('href');
   console.log(url);
   console.log(URL);
   console.log(wayThreeUsingJQuery );
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню