Chrome Prerender:如何将JavaScript推迟到页面实际加载



我正在使用chrome page prerendering:

<link rel="prerender" href="nextpage.html">

我的问题是,在nextpage.html上,我有一个JavaScript(notify.js(,它显示了几秒钟的通知弹出窗口。由于JavaScript是预制的,因此用户实际上从未看到该通知(它显示在"隐藏的Prerendered"选项卡中(。

有没有一种方法可以表明某个特定的JavaScript仅在实际页面显示上执行而不是在预渲染页面上执行?查看Chrome文档,我看到了一些有关"插件延期"的信息,但对JavaScript没有明确的说明。

我认为您可以推迟通知功能,直到页面可见可见API。

因此,基本上试图订阅可见的可见性事件,并在可见时进行必要的操作。也许您需要其他标志才能通知一次:

let alreadyNotified = false
document.addEventListener('visibilitychange', function() {
  if (!document.hidden && !alreadyNotified) {
    // run notification
    alreadyNotified = true
  }
})

最新更新