在URL中更改哈希值时,在浏览器上刷新浏览器页面

时间:2016-03-01 13:53:30

标签: javascript jquery hashchange

我有一个带过滤器的网站。每当应用任何过滤器时,我都附加了哈希。 例如,我有城市,彩色滤镜。

URL /#颜色=红色&安培;城市=德里

现在当有人点击浏览器返回此类网址时,它会变为URL /#color = red。浏览器删除了城市查询字符串。

问题是页面没有重新加载。

$(window).on('hashchange', function () {
    window.location.reload(true);
});

但这无限加载页面。

3 个答案:

答案 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编辑器中使用查找和替换来执行此操作。

如果这会对您实施过滤器的方式造成问题,则需要更新过滤代码。如果你在这里发布,我们可以帮助解决这个问题。

希望有所帮助。 : - )