0

内容脚本 (http://code.google.com/chrome/extensions/content_scripts.html) 是否注入到预呈现页面 (document.webkitVisibilityState== 'prerender') 中?

我一直在阅读https://developers.google.com/chrome/whitepapers/prerenderhttps://developers.google.com/chrome/whitepapers/pagevisibility,并试图弄清楚内容脚本如何与页面预渲染一起工作/预取。

谢谢

4

2 回答 2

1

TheZ, tomdemuyt:恐怕你们没有抓住重点。'run_at' 指定内容脚本是在构造 DOM 之前还是之后注入。

但是,我说的是 document.webkitVisibilityState,它可以是“预渲染”(当页面位于背景/不可见选项卡中时)、“隐藏”或“可见”。请注意,webkitVisibilityState 可以从 'prerender' 转换为 'hidden' 或 'visible',或者在 'hidden' 和 'visible' 之间来回转换,而无需对 DOM 进行任何更改。(为了更好地理解这一点,请阅读我原始帖子中链接的文章。)

我想我已经能够确定内容脚本被注入到预渲染页面中。然而,问题出在这里:假设我的内容脚本做了一些不应该出现在预呈现页面上的事情。例如,它会计算页面浏览量或添加动画,在用户实际查看页面之前,这两者都不应该开始。因此,我的内容脚本似乎应该像https://developers.google.com/chrome/whitepapers/pagevisibility上的代码示例中显示的那样- 检查 document.webkitVisibilityState,并听取“webkitvisibilitychange”事件,并且仅当 document.webkitVisibilityState 为“可见”或已转换为“可见”时才计算浏览量/启动动画。

我可能刚刚回答了我自己的问题,但我只是想确保我走在正确的轨道上。谢谢

于 2012-07-11T15:16:32.460 回答
-1

正如 TheZ 提到的,您应该使用 run_at 设置。

文档链接:http ://code.google.com/chrome/extensions/content_scripts.html#registration

于 2012-07-11T13:49:34.727 回答