userScripts.register() (已弃用)
警告:这是已弃用的 userScripts
API 的文档。它在 Manifest V2 的 Firefox 中可用。有关在 Manifest V3 中支持用户脚本的功能,请参阅新的 userScripts
API。
此方法允许从扩展的页面(例如后台页面)注册用户脚本。
此方法与 contentScripts.register()
API 方法非常相似(例如,它们都返回一个 Promise,该 Promise 解析为一个 API 对象,其中包含一个用于注销脚本的 unregister()
方法)。但是,它们支持的选项有所不同。
这是一个异步方法,它返回一个 Promise
。
语法
const registeredUserScript = await browser.userScripts.register(
userScriptOptions // object
);
// …
await registeredUserScript.unregister();
参数
userScriptOptions
-
object
。表示要注册的用户脚本。其语法与contentScripts.register()
类似。UserScriptOptions
对象具有以下属性scriptMetadata
可选-
一个
JSON
对象,其中包含与已注册的用户脚本关联的任意元数据属性。但是,尽管是任意的,但对象必须是可序列化的,因此它与 结构化克隆算法兼容。此元数据用于将详细信息从脚本传递到 API 脚本。例如,提供需要由 API 脚本注入的 API 子集的详细信息。API 不使用此元数据。 allFrames
可选-
与
content_scripts
键中的all_frames
相同。 -
一个 cookie 存储 ID 字符串数组或一个包含 cookie 存储 ID 的字符串。将用户脚本注册到属于这些 cookie 存储 ID 的标签页。这使得脚本可以注册到所有默认或非上下文身份的标签页、私密浏览标签页(如果 扩展程序已在私密浏览中启用)、上下文身份的标签页,或这些的组合。
excludeGlobs
可选-
与
content_scripts
键中的exclude_globs
相同。 excludeMatches
可选-
与
content_scripts
键中的exclude_matches
相同。 includeGlobs
可选-
与
content_scripts
键中的include_globs
相同。 js
-
对象数组。每个对象都有一个名为
file
的属性,该属性是相对于扩展程序 manifest.json 的 URL,指向要注册的 JavaScript 文件,或者有一个名为code
的属性,其中包含要注册的 JavaScript 代码。 matchAboutBlank
可选-
与
content_scripts
键中的match_about_blank
相同。 matches
-
与
content_scripts
键中的matches
相同。matches
中提供的 URL 模式必须由 manifestpermission
属性中定义的宿主权限启用,或由用户从optional_permissions
列表中启用。例如,如果 matches 包含https://mozilla.org/a
,则仅当宿主权限包含(例如)https://mozilla.org/*
时,才会注册脚本。如果 URL 模式未启用,则注册调用将因错误“Permission denied to register a user script for ORIGIN”而失败。 runAt
可选-
与
content_scripts
键中的run_at
相同。
与内容脚本选项不同,userScriptOptions 对象没有 CSS 属性。请使用 contentScripts.register()
来动态注册和注销样式表。
返回值
一个 Promise
,它将使用一个 RegisteredUserScript
对象进行填充,该对象用于注销用户脚本。
注意:当相关的扩展页面(注册用户脚本的页面)卸载时,用户脚本将被注销。因此,您应该从一个持续时间至少与您希望用户脚本保持注册的时间一样长的扩展页面注册用户脚本。
浏览器兼容性
加载中…