如何 运行 加载、返回和转发函数

How to run a function on load, back, and forward

我查看了该网站上其他一些过时的问题,发现他们的解决方案似乎不再适用于现代浏览器。

var foo = function() {
  console.log('woohoo');
};
foo();

我每次都想运行。我显然在第一次初始加载时 运行 没有问题,但我使用 url 哈希来隐藏和显示某些内容的 div。当用户向前和向后单击时,我希望此功能也再次 运行 。

浏览器缓存页面以便它们在 back/forward 上加载更快。因此,永远不会触发加载事件,这也是您的代码不再 运行 的原因。浏览器只是恢复以前的状态。

有关详细信息,请参阅 this answer

由于您只是处理哈希,您可以尝试绑定到 onhashchange 事件并调用您的方法。

window.addEventListener("hashchange", foo);

如果您使用的是单页框架,例如 Angular、Backbone 或许多其他框架之一,它们通常也会为您提供处理此问题的方法,因此请查看文档,如果原来如此。