Use this API to register content scripts. Registering a content script instructs the browser to insert the given content scripts into pages that match the given URL patterns.

This API is very similar to the "content_scripts" manifest.json key, except that with  "content_scripts" , the set of content scripts and associated patterns is fixed at install time. With the contentScripts API, an extension can register and unregister scripts at runtime.

To use the API, call contentScripts.register() passing in an object defining the scripts to register, the URL patterns, and other options. This returns a Promise that is resolved with a contentScripts.RegisteredContentScript object.

The RegisteredContentScript object represents the scripts that were registered in the register() call. It defines an unregister() method that you can use to unregister the content scripts. Content scripts are also unregistered automatically when the page that created them is destroyed. For example, if they are registered from the background page they will be unregistered automatically when the background page is destroyed, and if they are registered from a sidebar or a popup, they will be unregistered automatically when the sidebar or popup is closed.

There is no contentScripts API permission, but an extension must have the appropriate host permissions for any patterns it passes to register().

Types

contentScripts.RegisteredContentScript

An object of this type is returned by the contentScripts.register() function. It represents the content scripts that were registered by that call, and can be used to unregister the content script.

Functions

contentScripts.register()
Registers the given content scripts.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxOperaFirefox for Android
RegisteredContentScriptChrome No support NoEdge No support NoFirefox Full support 59Opera No support NoFirefox Android Full support 59
RegisteredContentScript.unregisterChrome No support NoEdge No support NoFirefox Full support 59Opera No support NoFirefox Android Full support 59
registerChrome No support NoEdge No support NoFirefox Full support 59Opera No support NoFirefox Android Full support 59

Legend

Full support  
Full support
No support  
No support

Example extensions

Document Tags and Contributors

Contributors to this page: wbamberg, ExE-Boss
Last updated by: wbamberg,