我有一个带过滤器的网站。每当应用任何过滤器时,我都附加了哈希。 例如,我有城市,彩色滤镜。
URL /#颜色=红色&安培;城市=德里
现在当有人点击浏览器返回此类网址时,它会变为URL /#color = red。浏览器删除了城市查询字符串。
问题是页面没有重新加载。
$(window).on('hashchange', function () {
window.location.reload(true);
});
但这无限加载页面。
答案 0 :(得分:0)
尝试使用历史记录API post
e.g。
function update(data) {
// DATA JOIN
// Join new data with old elements, if any.
var text = svg.selectAll("text")
.data(data);
// UPDATE
// Update old elements as needed.
text.attr("class", "update");
// ENTER
// Create new elements as needed.
text.enter().append("text")
.attr("class", "enter")
.attr("x", function(d, i) { return i * 32; })
.attr("dy", ".35em");
// ENTER + UPDATE
// Appending to the enter selection expands the update selection to include
// entering elements; so, operations on the update selection after appending to
// the enter selection will apply to both entering and updating nodes.
text.text(function(d) { return d; });
// EXIT
// Remove old elements as needed.
text.exit().transition().duration(2000).attr('transform',
rotation = 25;
return 'translate(' + d.x + ',' + d.y + ') rotate('+ rotation +' 30 30)';
}).remove();
}
答案 1 :(得分:0)
尝试关闭缓存,以便当您返回时,浏览器将自动从服务器获取新页面...
更多信息here ...
答案 2 :(得分:0)
您可能不希望听到这一点,但您拥有的HTML无效,需要通过将锚点#
转换为正确的查询字符串?
来修复。这将允许浏览器返回并重新加载页面。
您可以在HTML编辑器中使用查找和替换来执行此操作。
如果这会对您实施过滤器的方式造成问题,则需要更新过滤代码。如果你在这里发布,我们可以帮助解决这个问题。
希望有所帮助。 : - )