This method enables user scripts to be registered from an extension's pages (such as the background page).
This method is very similar to the
contentScripts.register()
API method (for example, they both return a promise that resolves to an API object with an
unregister()
method for unregistering the script). There are, however, differences in the options supported.
This is an asynchronous method that returns a
Promise
.
const registeredUserScript = await browser.userScripts.register(
userScriptOptions
// object
)
;
…
.
await
registeredUserScript
.
unregister
(
)
;
userScriptOptions
对象
. Represents the user scripts to register. It has similar syntax to
contentScripts.register()
.
UserScriptOptions
object has the following properties:
scriptMetadata
可选
A
JSON
object containing arbitrary metadata properties associated with the registered user scripts. However, while arbitrary, the object must be serializable, so it is compatible with
the structured clone algorithm.
This metadata is used to pass details from the script to the
API script
. For example, providing details of a subset of the APIs that need to be injected by the
API script
. The API does not use this metadata,
allFrames
可选
如同
all_frames
在
content_scripts
key.
excludeGlobs
可选
如同
exclude_globs
in the
content_scripts
key.
excludeMatches
可选
如同
exclude_matches
in the
content_scripts
key.
includeGlobs
可选
如同
include_globs
in the
content_scripts
key.
js
An array of objects. Each object has either a property named
file
, which is a URL starting at the extension's manifest.json and pointing to a JavaScript file to register, or a property named
code
, which contains JavaScript code to register.
matchAboutBlank
可选
如同
match_about_blank
in the
content_scripts
key.
匹配
如同
匹配
in the
content_scripts
key.
The URL patterns provided in
匹配
must be enabled by the host permissions defined in the manifest
permission
property or enabled by the user from the
optional_permissions
list. For example, if matches includes
https://mozilla.org/a
a script is only registered if host permissions include, for example,
https://mozilla.org/*
. If the URL pattern isn't enabled, the call to register fails with the error "Permission denied to register a user script for ORIGIN".
runAt
可选
如同
run_at
in the
content_scripts
key.
Unlike content script options, the userScriptOptions object does not have a css property. Use
contentScripts.register()
to dynamically register and unregister stylesheets.
A
Promise
that is fulfilled with a
RegisteredUserScript
object that is use to unregister the user scripts.
注意: User scripts are unregistered when the related extension page (from which the user scripts were registered) is unloaded, so you should register user scripts from an extension page that persists at least as long as you want the user scripts to stay registered.
BCD tables only load in the browser
最后修改: , 由 MDN 贡献者