1

Safari 和 Safari ios mobile 在用户单击“后退按钮”返回到上一个 html 页面时使用 bfcache。从我能找到的情况来看,没有其他浏览器移动或桌面具有这种行为。我用谷歌搜索,发现很多人抱怨同样的事情,但 Safari ios 没有任何解决方案。我确实为 Safari Desktop 找到了此修复程序(在 Windows 上测试),但它不适用于 Safari ios。

 window.onbeforeunload = function()
  {
    // This function does nothing.  It won't spawn a confirmation dialog
    // But it will ensure that the page is not cached by the browser.
  };

  window.onunload = function()
  {
    // Needed in OP in order to avoid caching. May also be needed in Safari.
  };

有人知道如何为 Safari ios 做这件事吗?

我想这样做的原因是在我进入下一个网页之前,我有一个微调器指示器以及在某些情况下显示的模式。如果用户单击后退按钮 Safari ios 使用缓存并且微调器和/或模式仍然存在。

有任何想法吗?

4

2 回答 2

0

window.onbeforeunload回调中隐藏微调器 div 是怎么回事?浏览器缓存实际上是一个很酷的东西......

于 2013-09-16T19:31:36.960 回答
0

您可以使用此功能来检测 pageshow 事件。pageshow 告诉您它是否来自 bfcache。

参考:https ://developer.mozilla.org/en-US/docs/Working_with_BFCache

window.addEventListener('pageshow', function(event) { 
  doSomething(); 
}

https://developer.mozilla.org/en-US/docs/Working_with_BFCache

于 2016-02-23T10:50:03.897 回答