我有2个过滤器:按位置和类型。每次我都需要更新哈希网址而不刷新页面。我怎样才能做到这一点?
链接结构例如: site.com/about#location=12#type=188
由于
答案 0 :(得分:0)
您可以使用window.location.hash
调整网址中的哈希值。
window.location.hash = 'some value';
答案 1 :(得分:0)
首先将散列分割为#
以获取最多2个项目的数组: -
var hashes = window.location.hash.split('#');
然后你可以检查它们是否存在: -
var location = hashes.filter(function(i) { return i.startsWith('location'); });
var type = hashes.filter(function(i) { return i.startsWith('type'); });
如果location.length == 1
与type
相同,那么它们就会被设置。
然后你可以更新/替换如: -
location[0] = "location=" + 11;
type[0] = "type=" + 190;
将它们重新连接在一起的最简单方法,包括一个不设置是将它们添加到新数组并join
。
var arr = [];
if(location.length == 1) arr.push(location[0]);
if(type.length == 1) arr.push(type[0]);
window.location.hash = arr.join('#');