我在页面上有三个标签
当每个标签处于活动状态时,会向网址添加一个哈希:
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";
}
答案 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问题,您需要以这种方式阅读:
var hashValue = decodeURI(window.location.hash);
对其他浏览器也是安全的。
如果你想获得没有初始符号#
的值,你只需要这样做:
var hashValue = decodeURI(window.location.hash).substr(1);