0

我正在开发需要在页面加载后更新页面文本的扩展。我在“ content_script ”中使用window.onload

由于我需要大量测试我的更改,我决定创建一个包含几段文本的小页面并将其放入我的 Web 服务器中。但是当这个页面加载时 - 扩展的window.onload 不会触发,它在任何其他互联网页面上都可以正常工作。

我开始调查并发现,这是因为页面加载速度。所以基本上页面加载速度比扩展代码快

通过在链接到外部站点的正文上添加背景图像来验证。像这样:

body
{
    background: url(http://colourunity.com/img/2013/07/autumn-wallpaper-computer-14172-hd-widescreen-wallpapers.jpg) no-repeat;
}

所以页面的加载速度变慢了,扩展有足够的时间加载和window.onload 触发器

当然,我不担心扩展工作,因为页面加载速度如此之快的情况很少见。

但仍然 - 有没有绕过这个?

谢谢。

4

1 回答 1

1

您的内容脚本的window对象与您的页面对象不同。从内容脚本文档

值得注意的是,页面和扩展共享的 JavaScript 对象(例如window.onload事件)会发生什么。每个孤立的世界都会看到自己的对象版本。

因此,在您的内容脚本中侦听此事件不会按您的意图工作,因为它不是您想要的。

无论如何都没关系:您可以通过run_at选项指定脚本在哪一点执行。例如,如果您选择在 运行它document_idle,那么您可以保证它在window.onload您的页面事件之后执行。

换句话说,您可以简单地停止使用window.onload事件,并直接运行您需要的代码。

于 2013-10-15T09:52:09.493 回答