この記事は翻訳作業中です。
このメソッドは一つ以上の content scripts を登録するときに使用します。
manifest.json内の content_scripts
に似た一つのオブジェクトを引数に持ちます。content_scripts
では配列ですが、この register()
ではオブジェクトを引数に持ちます。
これは Promise
を返す非同期関数です。
構文
var registering = browser.contentScripts.register( contentScriptOptions // object )
パラメーター
contentScriptOptions
-
object
です。RegisteredContentScriptOptions
オブジェクトは登録するコンテントスクリプトを表します。content_scripts
と似た構文のオブジェクトで、その違いは以下の通りです。- プロパティ名にはスネーク形式ではなくキャメル形式を使用します (例えば、
exclude_matches
を使用します。excludeMatches
ではありません) js
プロパティとcss
プロパティには、相対パスのほかに文字列も指定できます。このため、登録したいものがどちらであるのかを明確にできる構文になっています。
RegisteredContentScriptOptions
は次のプロパティを持ちます:allFrames
Optionalcontent_scripts
におけるall_frames
と同様です。css
Optional- オブジェクトの配列。 それぞれのオブジェクトは
file
という名前の manifest.json からの相対パスで登録したい CSS ファイルを指定した URL の文字列を持つプロパティか、code
という名前の登録したい CSS の文字列を持つプロパティを含みます。 excludeGlobs
Optionalcontent_scripts
におけるexclude_globs
と同様です。excludeMatches
Optionalcontent_scripts
におけるexclude_matches
と同様です。includeGlobs
Optionalcontent_scripts
におけるinclude_globs
と同様です。js
Optional- オブジェクトの配列。各オブジェクトは
file
またはcode
プロパティを含み、その要素は css プロパティと同様です。 matchAboutBlank
Optionalcontent_scripts
におけるmatch_about_blank
と同様です。matches
content_scripts
におけるmatches
と同様です。runAt
Optionalcontent_scripts
におけるrun_at
と同様です。
- プロパティ名にはスネーク形式ではなくキャメル形式を使用します (例えば、
返り値
登録したコンテントスクリプトを削除することができる contentScripts.RegisteredContentScript
オブジェクトを引数に持つ Promise
を返します。
したがって、コンテントスクリプトを登録する際は、少なくとも登録されたままであってほしいだけ存在する拡張機能ページから登録すべきです。
ブラウザー実装状況
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
デスクトップ | モバイル | ||||
---|---|---|---|---|---|
基本対応 | Chrome 未対応 なし | Edge 未対応 なし | Firefox 完全対応 59 | Opera 未対応 なし | Firefox Android 完全対応 59 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
例
defaultCode
コンテントスクリプトを、すべての .org
URL に対して登録します。
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" }); } var registered = register(defaultHosts, defaultCode);
次のコードは content_scripts/example.js にある JavaScript ファイルを登録します。
const scriptObj = await browser.contentScripts.register({ "js": [{file: "/content_scripts/example.js"}], "matches": ["<all_urls>"], "allFrames": true, "runAt": "document_start" });