我正在使用chrome扩展程序来自动填充演示数据。我创建了JavaScript文件" basepath()
"用于自动填充数据。
所以我通过点击按钮来执行脚本
xyz.js
我得到了所需的输出。
我没有使用内容脚本或后台脚本。使用内容脚本或后台脚本可以获得哪些好处?
答案 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文件的内容脚本部分下有一个文件条目