使用 jQuery 获取当前 URL?

IT技术 javascript jquery url
2021-01-09 15:38:35

我正在使用 jQuery。如何获取当前 URL 的路径并将其分配给变量?

示例网址:

http://localhost/menuname.de?foo=bar&number=0
6个回答

要获取路径,您可以使用:

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)
嗯,... window.location.pathname 只获取 URL 上的“?” 并且没有按照问题中的要求获取查询参数。
2021-03-10 15:38:35
这不适用于完整网址。例如。对于“ mail.google.com/mail/u/0/#mbox/13005b79fe72f448 ”,这只会返回 /mail/u/0
2021-03-22 15:38:35
jQuery 并没有杀死它,而是赋予了 Javascript 新的生命。新的 C#/Java 程序员了解指针吗?不需要。他们需要吗?不是真的,较新的抽象足够强大以至于无关紧要。
2021-03-26 15:38:35
“我如何在 jQuery 中使用 XYZ”,答案是普通的 javascript 是很常见的。你可能知道如何用普通的 javascript 做一些事情;但是,由于浏览器不一致,您可能更喜欢使用“jQuery”方式。我记得在 jQuery 或框架之前,我会首先检查浏览器,然后通过几种方式做我想做的事。jQuery 杀死了普通 js 也是如此……是的,感谢上帝,但它也使它可用。
2021-03-31 15:38:35
2021-04-07 15:38:35

纯 jQuery 风格:

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

位置对象还具有其他属性,例如主机、哈希、协议和路径名。

@HaralanDobrev:你不应该.attr()在现场(1) 它不是一个元素,因此$(location)充其量是阴暗的,并且 (2) 即使它有效,您也应该使用它.prop()来获取属性。 .attr()用于 HTML 属性。
2021-03-11 15:38:35
@mc10:“无效”部分适用于支持 $(location) 的请求;这不应该被使用。
2021-03-16 15:38:35
这个答案是不需要的,可以更新问答不使用jquery。原因可以在这里找到bugs.jquery.com/ticket/7858#comment:4
2021-03-21 15:38:35
显然,不支持在 jQuery 中使用 $(location) 并建议不要使用:bugs.jquery.com/ticket/7858
2021-03-25 15:38:35
@Peter Bug 因无效而关闭。
2021-04-04 15:38:35
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>
它与之前的解释相同,但包含对象的所有元素。很好的答案。
2021-03-18 15:38:35
应该/index.php代替index.php路径名。
2021-03-20 15:38:35
根据bugs.jquery.com/ticket/7858,这只是偶然的。此外,attr应该仅用于 DOM 对象,用于可以使用 HTML 属性设置的内容。
2021-04-07 15:38:35

如果您需要 URL 中存在的哈希参数,window.location.href可能是更好的选择。

window.location.pathname
=> /search

window.location.href 
 => www.website.com/search#race_type=1
如果某人只需要哈希标签,则可以调用 window.location.href
2021-03-21 15:38:35
我认为@AmitPatel 的意思是 window.location.hash
2021-04-02 15:38:35

您将需要使用 JavaScript 的内置window.location对象。

@majidgeek 在 Firefox、Chrome 和 IE 中为我工作。你能提供这个破坏的测试用例吗?
2021-03-24 15:38:35
至少可以在控制台中确认window.location.pathname后不检索任何内容?
2021-04-04 15:38:35
这不会在“?”之后返回项目 在位置。
2021-04-08 15:38:35