contentScripts.register()
使用此函数注册一个或多个内容脚本。
它接受一个参数,该参数是一个对象,其属性类似于 content_scripts 清单(manifest)键中给出的对象(但请注意,content_scripts 是对象数组,而传递给 register() 的参数是一个单独的对象)。
这是一个返回 Promise 的异步函数。
语法
let registering = browser.contentScripts.register(
  contentScriptOptions       // 对象
)
参数
- contentScriptOptions
- 
object。表示要注册的内容脚本的RegisteredContentScriptOptions对象。它的语法与content_scripts清单键数组中的对象类似。不同之处在于:- 属性名称使用驼峰命名法,而不是蛇形命名法——例如,使用 excludeMatches而不是exclude_matches。
- js和- css属性允许你注册字符串和 URL,因此它们的语法必须区分这些类型。
 RegisteredContentScriptOptions对象具有以下属性:- allFrames可选
- 
与 content_scripts键中的all_frames相同。
- 
一个字符串或字符串数组。在属于一个或多个 cookie 存储 ID 的标签页中注册内容脚本。这使得脚本可以为所有默认或非场景身份标签页、隐私浏览标签页(如果扩展在隐私浏览中启用)、场景身份的标签页或这些的组合。有关详细信息,请参见使用场景身份。 
- css可选
- 
对象数组。每个对象有一个名为 file的属性,它是一个从扩展的 manifest.json 开始指向要注册的 CSS 文件的 URL,或一个名为code的属性,它是要注册的一些 CSS 代码。
- excludeGlobs可选
- 
与 content_scripts键中的exclude_globs相同。
- excludeMatches可选
- 
与 content_scripts键中的exclude_matches相同。
- includeGlobs可选
- 
与 content_scripts键中的include_globs相同。
- js可选
- 
对象数组。每个对象有一个名为 file的属性,它是一个从扩展的 manifest.json 开始指向要注册的 JavaScript 文件的 URL,或一个名为code的属性,它是要注册的一些 JavaScript 代码。
- matchAboutBlank可选
- 
与 content_scripts键中的match_about_blank相同。
- matches
- 
与 content_scripts键中的matches相同。
- runAt可选
- 
与 content_scripts键中的run_at相同。
 
- 属性名称使用驼峰命名法,而不是蛇形命名法——例如,使用 
返回值
一个 Promise,其会兑现一个 contentScripts.RegisteredContentScript 对象,该对象可以用来取消注册内容脚本。
当前,当相关的扩展页面(从中注册了内容脚本)被卸载时,内容脚本会自动取消注册。因此你应该在一个会在你希望让内容脚本保持注册状态的时间内持续存在扩展页面中注册内容脚本。
浏览器兼容性
Loading…
示例
此示例为所有 .org URL 注册 defaultCode 内容脚本:
const defaultHosts = "*://*.org/*";
const defaultCode = "document.body.innerHTML = '<h1>这个页面被吃掉了<h1>'";
async function register(hosts, code) {
  return await browser.contentScripts.register({
    matches: [hosts],
    js: [{ code }],
    runAt: "document_idle",
  });
}
let registered = register(defaultHosts, defaultCode);
此代码注册位于 content_scripts/example.js 的 JS 文件:
const scriptObj = await browser.contentScripts.register({
  js: [{ file: "/content_scripts/example.js" }],
  matches: ["<all_urls>"],
  allFrames: true,
  runAt: "document_start",
});