Javascript Chrome扩展:在加载(呈现)页面之前运行

Javascript Chrome扩展:在加载(呈现)页面之前运行,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我有一个Google Chrome扩展正在工作,它的目标是改变网页中像素图像的颜色 要更改网页中图像的颜色,请在已打开的选项卡中使用代码(在background.js文件中): 我做得很好但是,当我打开新选项卡时,我看到了原始图像,并且在几微秒后,我看到了重新存储的图像。 我想改进这一点,仅在重新排序后查看页面(我不想查看原件) 有人知道如何解决这个问题吗? 提前谢谢。都是关于线路的: info.status == "complete" 这意味着Chrome将在页面加载后执行您的脚本,其中包括

我有一个Google Chrome扩展正在工作,它的目标是改变网页中像素图像的颜色

要更改网页中图像的颜色,请在已打开的选项卡中使用代码(在background.js文件中):

我做得很好但是,当我打开新选项卡时,我看到了原始图像,并且在几微秒后,我看到了重新存储的图像。 我想改进这一点,仅在重新排序后查看页面(我不想查看原件)

有人知道如何解决这个问题吗?
提前谢谢。

都是关于线路的:

info.status == "complete"
这意味着Chrome将在页面加载后执行您的脚本,其中包括加载图像等资产。你有两个选择

第一个(简单的一个)是在启动加载的事件之前加载第二个脚本,并在第二个脚本执行之前隐藏(当然,您可以将两个脚本合并为一个脚本,并等待dom加载事件完成其余工作)

第二个更复杂。因为从用户体验的角度来看,不建议使用第一种方法(在某些事件触发之前隐藏内容),所以您可以使用更高级的事件处理。 您可以在页面开始加载时将代码插入页面,侦听主体元素并检查DomainNodeInserted事件。然后,您可以检查新节点是否为图像(正是您要查找的图像),然后将其替换。那你就不应该看到老照片了。此外,在加载新图像之前,可以将元素可见性状态设置为“不可见”


希望它能对您有所帮助。

都是关于线路的:

info.status == "complete"
这意味着Chrome将在页面加载后执行您的脚本,其中包括加载图像等资产。你有两个选择

第一个(简单的一个)是在启动加载的事件之前加载第二个脚本,并在第二个脚本执行之前隐藏(当然,您可以将两个脚本合并为一个脚本,并等待dom加载事件完成其余工作)

第二个更复杂。因为从用户体验的角度来看,不建议使用第一种方法(在某些事件触发之前隐藏内容),所以您可以使用更高级的事件处理。 您可以在页面开始加载时将代码插入页面,侦听主体元素并检查DomainNodeInserted事件。然后,您可以检查新节点是否为图像(正是您要查找的图像),然后将其替换。那你就不应该看到老照片了。此外,在加载新图像之前,可以将元素可见性状态设置为“不可见”


希望对您有所帮助。

您好。我将行'info.status==“complete”'放在了哪个URL的选项卡中,因为在加载网页的过程中,onUpdated事件被识别了好几次(2次或3次),页面被重新存储了好几次(因此最终结果不是预期的)。我认为这是一个错误的铬。。。谢谢你的关注,但我不知道你的建议。。。我的问题只是第二个脚本,当URL在打开的选项卡中更改时应该运行该脚本。。。你能解释清楚你的想法吗?嗯,这不是一个错误。onUpdated事件被激发多次,因为它的状态随时间而改变。它连接、接收数据等等。有一件事我可能错了。按原样尝试代码,并将附加参数“runAt”:“document_end”添加到executeScript函数中。这意味着您的脚本将在加载所有文档(正文)后立即被注入。这相当于在页面末尾添加脚本。默认情况下,在加载所有资源时注入脚本。Hello。我将行'info.status==“complete”'放在了哪个URL的选项卡中,因为在加载网页的过程中,onUpdated事件被识别了好几次(2次或3次),页面被重新存储了好几次(因此最终结果不是预期的)。我认为这是一个错误的铬。。。谢谢你的关注,但我不知道你的建议。。。我的问题只是第二个脚本,当URL在打开的选项卡中更改时应该运行该脚本。。。你能解释清楚你的想法吗?嗯,这不是一个错误。onUpdated事件被激发多次,因为它的状态随时间而改变。它连接、接收数据等等。有一件事我可能错了。按原样尝试代码,并将附加参数“runAt”:“document_end”添加到executeScript函数中。这意味着您的脚本将在加载所有文档(正文)后立即被注入。这相当于在页面末尾添加脚本。默认情况下,在加载所有资源时注入脚本。
info.status == "complete"