Получить текущий URL с помощью jQuery? - PullRequest
1698 голосов
/ 02 января 2009

Я использую jQuery. Как получить путь к текущему URL-адресу и назначить его переменной?

Пример URL:

http://localhost/menuname.de?foo=bar&number=0

Ответы [ 30 ]

2313 голосов
/ 02 января 2009

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

var pathname = window.location.pathname; // Returns path only (/path/example.html)
var url      = window.location.href;     // Returns full URL (https://example.com/path/example.html)
var origin   = window.location.origin;   // Returns base URL (https://example.com)
798 голосов
/ 19 мая 2010

В чистом стиле jQuery:

$(location).attr('href');

Объект location также имеет другие свойства, такие как host, hash, protocol и pathname.

449 голосов
/ 31 января 2013
http://www.refulz.com:8082/index.php#tab2?foo=789

Property    Result
------------------------------------------
host        www.refulz.com:8082
hostname    www.refulz.com
port        8082
protocol    http:
pathname    index.php
href        http://www.refulz.com:8082/index.php#tab2
hash        #tab2
search      ?foo=789

var x = $(location).attr('<property>');

Это будет работать, только если у вас есть jQuery. Например:

<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>
  $(location).attr('href');      // http://www.refulz.com:8082/index.php#tab2
  $(location).attr('pathname');  // index.php
</script>
</html>
62 голосов
/ 09 мая 2010

Если вам нужны хеш-параметры, присутствующие в URL-адресе, window.location.href может быть лучшим выбором.

window.location.pathname
=> /search

window.location.href 
 => www.website.com/search#race_type=1
50 голосов
/ 02 января 2009

Вы захотите использовать встроенный в JavaScript объект window.location.

42 голосов
/ 19 мая 2010

Просто добавьте эту функцию в JavaScript, и она вернет абсолютный путь текущего пути.

function getAbsolutePath() {
    var loc = window.location;
    var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
    return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
}

Я надеюсь, что это работает для вас.

33 голосов
/ 06 апреля 2015

window.location - это объект в JavaScript. возвращает следующие данные

window.location.host          #returns host
window.location.hostname      #returns hostname
window.location.path          #return path
window.location.href          #returns full current url
window.location.port          #returns the port
window.location.protocol      #returns the protocol

в jquery вы можете использовать

$(location).attr('host');        #returns host
$(location).attr('hostname');    #returns hostname
$(location).attr('path');        #returns path
$(location).attr('href');        #returns href
$(location).attr('port');        #returns port
$(location).attr('protocol');    #returns protocol
28 голосов
/ 12 января 2011

Это более сложный вопрос, чем многие могут подумать. Несколько браузеров поддерживают встроенные объекты местоположения JavaScript и связанные параметры / методы, доступные через window.location или document.location. Тем не менее, различные версии Internet Explorer (6,7) не поддерживают эти методы одинаково (window.location.href? window.location.replace() не поддерживается), поэтому вам приходится обращаться к ним по-разному, постоянно записывая условный код. Internet Explorer.

Итак, если у вас есть доступный и загруженный jQuery, вы также можете использовать jQuery (местоположение), как и другие, упомянутые, потому что это решает эти проблемы. Однако, если вы делаете для примера перенаправление геолокации на стороне клиента с помощью JavaScript (то есть с помощью API Карт Google и методов объекта определения местоположения), то вы можете не захотеть загружать всю библиотеку jQuery и писать свой условный код, который проверяет каждую версию Internet Explorer / Firefox / и т. д.

Internet Explorer делает кошку кодирования внешнего интерфейса несчастной, но jQuery - это тарелка молока.

26 голосов
/ 05 октября 2010

Только для имени хоста, используйте:

window.location.hostname
21 голосов
/ 26 июля 2012

Это также будет работать:

var currentURL = window.location.href;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...