在URL中获取带有查询参数的哈希值?

时间:2014-05-26 04:27:46

标签: javascript jquery

如何使用javascript / jquery获取没有查询参数的哈希值?

问题是,

http://www.somedomain.com/me/terms.html#terms - location.hash.substr(1) - 条款

http://www.somedomain.com/me/terms.html#terms?queryParam=1 - location.hash.substr(1) - terms?queryParam = 1

我们可以解析URL并获取哈希值但是有没有直接/有效的方法可用javascript / jquery?

4 个答案:

答案 0 :(得分:3)

片段标识符应该在查询字符串之后。 来自维基百科:

  

语法(对于url方案)是:   方案://域:端口/路径QUERY_STRING#fragment_id

这很重要,因为在您的示例中,查询字符串不会到达服务器。如果您使用的是前端库,则可以访问一些允许您访问它的API。默认情况下,AngularJS中的$ location服务仅解决第一个哈希之后的部分(因为哈希表示前端应用程序的路由启动)。 https://docs.angularjs.org/guide/ $位置

在你的情况下,$ location.path()等于 terms ,$ location.search()等于 queryparam = 1 ; $ location.hash()将为null。

答案 1 :(得分:1)

 test.html#part2?queryParamm=1

window.location.hash#part2

window.location.search?queryParamm=1

了解更多信息,请参阅http://tech-blog.maddyzone.com/javascript/get-current-url-javascript-jquery

答案 2 :(得分:0)

最简单的方法可能是使用从哈希开始并以?结尾的正则表达式?或者字符串的结尾。像这样:

/#(。+)\ ?? / GI

第一个捕获组应该产生散列的内容。

答案 3 :(得分:0)

甚至不需要正则表达式。它已经作为Javascript的一部分与location.hash;

Assume that the current URL is http://www.example.com/test.htm#part2:

var x = location.hash;
The result of x will be:

#part2

http://www.w3schools.com/jsref/prop_loc_hash.asp