如何使用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?
答案 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