Chrome 预渲染:如何将 javascript 推迟到实际加载页面?

布莱斯

我正在使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

推迟将JavaScript加载到特定页面锚点

如何将javascript的运行推迟到浏览器视图内部?

如何将Google API Javascript客户端库加载到Chrome应用中

推迟加载 javascript 以获得谷歌页面洞察

Angular ui-router:如何将模板渲染推迟到授权完成?

是否将JavaScript执行推迟到构建CSSOM之前进行?

使用Amazon S3时如何将搜寻器请求重定向到预渲染的页面?

如何将执行推迟到某个事件发生之前?

Javascript事件执行推迟到队列中

使用SQLAlchemy创建表,但将索引的创建推迟到数据加载完成

Chrome中出现警报后如何重新加载javascript中的页面

使用Chrome JavaScript调试器/如何中断页面加载事件

Chrome扩展程序:如何在页面加载时运行Javascript(不打开弹出窗口)

如何将渲染延迟到promise的then()完成之前?

如何将本地HTML加载到无头Chrome

如何从Chrome扩展程序调用页面的javascript函数?

在 chrome 扩展中循环 javascript 使页面无法加载

如何强制Chrome的脚本调试器重新加载JavaScript?

如何将模块预加载到 python 脚本中?

如何将文件预加载到内存中?

如何将数据预加载到laravel会话中?

如何在使用Javascript将图像加载到Chrome中时对它们进行计数?

Javascript未立即执行,延迟到页面加载后一秒钟

如何将更新从 Compose TextField 推迟到用户输入 ImeAction.Done

如何将JQuery click事件处理推迟到Twitter Bootstrap处理程序运行之后

如何将 log4j2 写入的文件的命名推迟到文件打开时?

JavaScript-如何将输入值从弹出窗口传递到Chrome中的父窗口?

如何将Angular对象传递给Google Chrome扩展程序中的Javascript函数?

如何将Javascript数组转换为CSV文件并从Chrome扩展程序下载?