Google Chrome上的页面隐藏事件

ndasle7k  于 2023-07-31  发布在  Go
关注(0)|答案(2)|浏览(137)

我拼命地想让这个在Chrome上工作(在Firefox上很好)

window.addEventListener(
  "pagehide",
  function() {
    console.log("pagehide");
  },
  { capture: true }
);

字符串
现在这触发了页面重新加载,但没有办法它的工作时,按下前进或后退按钮导致另一个网站。
PS我在这里发现了一堆问题bugs.chromium.org,但我不确定是否和其中哪些可能适用。

mec1mxoz

mec1mxoz1#

它确实有效,但可能不是你期望的方式。简单的测试方法:

window.addEventListener('pagehide', function() {
  window.open('https://google.com');
});

字符串
任何时候页面被刷新或后退/前进导航隐藏,你应该有一个新的谷歌标签。

c86crjj0

c86crjj02#

window.addEventListener('pagehide', function (event) {
    if (event.persisted) {
      // If the event's persisted property is `true` the page is about
      // to enter the Back-Forward Cache, which is also in the frozen state
    } else {
      // If the event's persisted property is not `true` the page is about to be unloaded.
    }
  },
    { capture: true }
  );

字符串
有几个浏览器实现了前向缓存,页面生命周期API将缓存的页面分类为处于冻结状态。由于这个API是全新的,这些浏览器还没有实现冻结和恢复事件,尽管这个状态仍然可以通过pagehide和pageshow事件来观察。
关于页面生命周期API的文章- Google Developers

相关问题