chrome扩展中的内容脚本和后台脚本究竟是什么?

时间:2017-01-27 07:55:07

标签: google-chrome google-chrome-extension content-script

我正在使用chrome扩展程序来自动填充演示数据。我创建了JavaScript文件" basepath()"用于自动填充数据。 所以我通过点击按钮来执行脚本 xyz.js我得到了所需的输出。

我没有使用内容脚本或后台脚本。使用内容脚本或后台脚本可以获得哪些好处?

3 个答案:

答案 0 :(得分:8)

首先,您使用内容脚本确实。在这里,您只是通过事件控制内容脚本的执行。

后台脚本是在后台运行并在用户与Chrome浏览器交互时侦听触发器(例如在选项卡上侦听点击事件)

虽然内容脚本是实际与网页交互的内容(主要是DOM元素)。

现在,您的方法在清单中包含它们之间的区别在于,如果它们包含在清单中,则内容脚本将在页面加载后立即加载因此(在这种情况下)将同时自动填充数据,而chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"});将在某个触发事件时加载内容脚本,因此(在这种情况下)在触发器上自动填充数据(例如在按钮单击时)

Here是注入内容脚本的所有方法。

答案 1 :(得分:2)

实际上在chrome扩展中执行脚本是使用内容脚本的另一种方式。 内容脚本也可以在扩展的清单中定义。

内容脚本很快就可以访问扩展api的一小部分,并且可以在页面的DOM上完全运行。如果在清单中定义了它们,则会在自动导航时将它们加载到页面中,或者您可以使用您正在使用的API注入它们,但最终结果是相同的。

后台脚本无法访问页面的DOM,但可以完全访问扩展程序的API。

在后台脚本中存储扩展程序的状态,因为它一直存在,直到浏览器关闭。

以下是有关chrome扩展架构的更多详细信息,您也可以在其中找到有关内容和后台脚本的信息。 https://developer.chrome.com/extensions/overview

答案 2 :(得分:2)

拥有 background.js 文件和内容脚本的主要目的是提高扩展程序的性能。

如果假设您的扩展程序在其点击上显示某些内容,那么它可以保持愚蠢。主要功能可以写在background.js和其他内容脚本中,而这些脚本又会填充我们保持愚蠢的视图。

从更简单的意义上说,拥有 background.js 内容脚本可以提高效率,这也是Google扩展程序开发人员的建议。最后,您运行的文件本身就是一个内容脚本,因为它与网页交互。我希望你在manifest.json文件的内容脚本部分下有一个文件条目