jQuery - 获取url哈希

时间:2015-04-03 08:41:24

标签: jquery

我在页面上有三个标签

  • 最新
  • 过期

当每个标签处于活动状态时,会向网址添加一个哈希:

http://example.com/com/#latest

我正在尝试在每个标签前添加分页。所以我想做这样的事情:

http://example.com/com/#latest?p=5

但我不知道如何自己获取哈希值。使用$(location).attr('hash')返回#latest?p=5

if( $(location).attr('hash') ) {
    var tab = $(location).attr('hash');
}else{
    var tab = "#latest";
}

3 个答案:

答案 0 :(得分:5)

这是一个JavaScript属性

 window.location.hash

然后你需要解析你的字符串。如果使用标准查询字符串表示法,则可以使用Parse query string in JavaScript

中的代码对其进行解析

答案 1 :(得分:3)

获取哈希

var hash = window.location.hash;

获取latest

var active = hash.match(/\#(\w+)/)[1];

获取页码

var num = hash.match(/p=(\d+)/)[1];

答案 2 :(得分:0)

有其他答案的重要细节:

  • FireFox返回哈希值网址编码
  • 您获得哈希值,包括初始哈希值

要解决Firefox问题,您需要以这种方式阅读:

var hashValue = decodeURI(window.location.hash);

对其他浏览器也是安全的。

如果你想获得没有初始符号#的值,你只需要这样做:

var hashValue = decodeURI(window.location.hash).substr(1);