【问题标题】:Chrome extension: page loads faster than extension codeChrome 扩展:页面加载速度比扩展代码快
【发布时间】:2013-10-15 09:26:22
【问题描述】:

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

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

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

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

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

因此页面的加载速度变慢,扩展程序有足够的时间加载和window.onload触发器

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

但是 - 有没有办法绕过这个?

谢谢。

【问题讨论】:

标签: javascript google-chrome google-chrome-extension browser-extension


【解决方案1】:

您的内容脚本的window 对象与您的页面对象不同。来自content script documentation

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

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

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

也就是说,你可以直接停止使用window.onload事件,直接运行你需要的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多