我正在使用 Chrome 页面预渲染:
<link rel="prerender" href="nextpage.html">
我的问题是在 nextpage.html 上我有一个 javascript (notify.js),它会显示一个通知弹出窗口几秒钟。由于 javascript 是预渲染的,用户实际上从未看到通知(它显示在隐藏的预渲染选项卡中)。
有没有一种方法可以表明特定的 javascript 只在实际页面显示上执行,而不是在预渲染的页面上执行?查看 Chrome文档,我看到了一些关于“插件延迟”的内容,但没有关于 javascript 的明确说明。
我认为您可以推迟通知功能,直到使用Page Visibility API可以看到页面。
所以基本上尝试订阅visibilitychange事件并在它变得可见时触发必要的动作。也许你需要额外的标志来通知一次:
let alreadyNotified = false
document.addEventListener('visibilitychange', function() {
if (!document.hidden && !alreadyNotified) {
// run notification
alreadyNotified = true
}
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句