Use this function to register one or more content scripts.
It accepts one parameter, which is an object with similar properties to the objects given in the content_scripts
manifest key (but note that content_scripts
is an array of objects, while the argument to register()
is a single object).
This is an asynchronous function that returns a Promise
.
contentScriptOptions
object
. A RegisteredContentScriptOptions
object representing the content scripts to register. It has similar syntax to the objects in the content_scripts
manifest key array. The differences are:
excludeMatches
, not exclude_matches
js
and css
properties allow you to register strings as well as URLs, so their syntax has to distinguish these types.The RegisteredContentScriptOptions
object has the following properties:
allFrames
Optional
all_frames
in the content_scripts
key.css
Optional
file
, which is a URL starting at the extension's manifest.json and pointing to a CSS file to register, or a property named code
, which is some CSS code to register.excludeGlobs
Optional
exclude_globs
in the content_scripts
key.excludeMatches
Optional
exclude_matches
in the content_scripts
key.includeGlobs
Optional
include_globs
in the content_scripts
key.js
Optional
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 is some JavaScript code to register.matchAboutBlank
Optional
match_about_blank
in the content_scripts
key.matches
matches
in the content_scripts
key.runAt
Optional
run_at
in the content_scripts
key.A Promise
that will be fulfilled with a contentScripts.RegisteredContentScript
object that you can use to unregister the content scripts.
Currently, content scripts are unregistered when the related extension page (from which the content scripts were registered) is unloaded, so you should register a content script from an extension page that persists at least as long as you want the content scripts to stay registered.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
register |
No
There is a polyfill available.
|
No
There is a polyfill available.
|
59 |
? |
No |
No
There is a polyfill available.
|
? |
? |
59 |
? |
? |
? |
This example registers the defaultCode
content script for all .org
URLs:
const defaultHosts = "*://*.org/*"; const defaultCode = "document.body.innerHTML = '<h1>This page has been eaten<h1>'"; async function register(hosts, code) { return await browser.contentScripts.register({ matches: [hosts], js: [{code}], runAt: "document_idle" }); } var registered = register(defaultHosts, defaultCode);
This code registers the JS file at content_scripts/example.js:
const scriptObj = await browser.contentScripts.register({ "js": [{file: "/content_scripts/example.js"}], "matches": ["<all_urls>"], "allFrames": true, "runAt": "document_start" });
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts/register