Chrome 扩展中的内容脚本和背景脚本到底是什么?
What exactly are content script and background script in the Chrome extension?
我正在开发 Chrome 扩展以自动填充演示数据。我已经创建了 JavaScript 文件 xyz.js
用于自动填充数据。
我通过单击带有 chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"});
的按钮来执行脚本,我得到了所需的输出。
我没有使用内容脚本或背景脚本。使用内容脚本或后台脚本对我有什么好处?
实际执行 chrome 扩展中的脚本是使用内容脚本的另一种方式。
内容脚本也可以在扩展的清单中定义。
很快,内容脚本可以访问扩展的一小部分 api,并且可以在页面的 DOM 上完全工作。如果它们在清单中定义,则它们会在自动导航时加载到页面中,或者您可以使用您正在使用的 api 注入它们,但最终结果是相同的。
后台脚本无法访问页面的DOM,但可以让您完全访问扩展的api。
在后台脚本中存储扩展的状态,因为它会一直存在到浏览器关闭。
这里有很多关于 chrome 扩展架构的详细信息,你也可以在那里找到关于内容和后台脚本的信息。
https://developer.chrome.com/extensions/overview
首先,您确实正在使用内容脚本。这里只是通过事件控制内容脚本的执行。
后台脚本 是在后台 运行 并在用户与 chrome 浏览器交互时监听触发器(例如监听点击选项卡上的事件)
虽然 内容脚本 是实际与网页交互的脚本(本质上是 DOM 元素)。
现在,您的方法和将它们包含在清单中的区别在于,如果它们包含在清单中,内容脚本将页面加载后立即加载,因此(在这种情况下)将同时 auto-fill 数据,而 chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"});
将在某个触发事件时加载内容脚本,因此(在这种情况下)auto-fill 触发器上的数据(例如单击按钮时)。
Here都是注入内容脚本的方法
拥有background.js文件和内容脚本的主要目的是提高扩展的性能。
如果假设您有一个在点击时显示内容的扩展程序,那么它可以保持哑巴状态。主要功能可以写在 background.js 和其他内容脚本中,这些内容脚本反过来将填充我们保持愚蠢的视图。
简单来说,background.js和内容脚本可以提高效率,这就是Google 扩展开发者建议。最后,您 运行 的文件本身就是一个内容脚本,因为它与网页交互。我希望您在 manifest.json 文件
的内容脚本部分下有该文件的条目
我正在开发 Chrome 扩展以自动填充演示数据。我已经创建了 JavaScript 文件 xyz.js
用于自动填充数据。
我通过单击带有 chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"});
的按钮来执行脚本,我得到了所需的输出。
我没有使用内容脚本或背景脚本。使用内容脚本或后台脚本对我有什么好处?
实际执行 chrome 扩展中的脚本是使用内容脚本的另一种方式。 内容脚本也可以在扩展的清单中定义。
很快,内容脚本可以访问扩展的一小部分 api,并且可以在页面的 DOM 上完全工作。如果它们在清单中定义,则它们会在自动导航时加载到页面中,或者您可以使用您正在使用的 api 注入它们,但最终结果是相同的。
后台脚本无法访问页面的DOM,但可以让您完全访问扩展的api。
在后台脚本中存储扩展的状态,因为它会一直存在到浏览器关闭。
这里有很多关于 chrome 扩展架构的详细信息,你也可以在那里找到关于内容和后台脚本的信息。 https://developer.chrome.com/extensions/overview
首先,您确实正在使用内容脚本。这里只是通过事件控制内容脚本的执行。
后台脚本 是在后台 运行 并在用户与 chrome 浏览器交互时监听触发器(例如监听点击选项卡上的事件)
虽然 内容脚本 是实际与网页交互的脚本(本质上是 DOM 元素)。
现在,您的方法和将它们包含在清单中的区别在于,如果它们包含在清单中,内容脚本将页面加载后立即加载,因此(在这种情况下)将同时 auto-fill 数据,而 chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"});
将在某个触发事件时加载内容脚本,因此(在这种情况下)auto-fill 触发器上的数据(例如单击按钮时)。
Here都是注入内容脚本的方法
拥有background.js文件和内容脚本的主要目的是提高扩展的性能。
如果假设您有一个在点击时显示内容的扩展程序,那么它可以保持哑巴状态。主要功能可以写在 background.js 和其他内容脚本中,这些内容脚本反过来将填充我们保持愚蠢的视图。
简单来说,background.js和内容脚本可以提高效率,这就是Google 扩展开发者建议。最后,您 运行 的文件本身就是一个内容脚本,因为它与网页交互。我希望您在 manifest.json 文件
的内容脚本部分下有该文件的条目