--- title: contentScripts.register() slug: Mozilla/Add-ons/WebExtensions/API/contentScripts/register tags: - API - Extensions - Method - Reference - contentScripts - register translation_of: Mozilla/Add-ons/WebExtensions/API/contentScripts/register ---
このメソッドは一つ以上の content scripts を登録するときに使用します。
manifest.json内の content_scripts に似た一つのオブジェクトを引数に持ちます。content_scripts では配列ですが、この register() ではオブジェクトを引数に持ちます。
これは Promise を返す非同期関数です。
var registering = browser.contentScripts.register( contentScriptOptions // object )
contentScriptOptionsobject です。RegisteredContentScriptOptions オブジェクトは登録するコンテントスクリプトを表します。content_scripts と似た構文のオブジェクトで、その違いは以下の通りです。
excludeMatchesを使用します。exclude_matches ではありません)js プロパティと css プロパティには、相対パスのほかに文字列も指定できます。このため、登録したいものがどちらであるのかを明確にできる構文になっています。RegisteredContentScriptOptions は次のプロパティを持ちます:
allFrames{{optional_inline}}content_scripts における all_frames と同様です。css{{optional_inline}}file という名前の manifest.json からの相対パスで登録したい CSS ファイルを指定した URL の文字列を持つプロパティか、code という名前の登録したい CSS の文字列を持つプロパティを含みます。excludeGlobs{{optional_inline}}content_scripts における exclude_globs と同様です。excludeMatches{{optional_inline}}content_scripts における exclude_matches と同様です。includeGlobs{{optional_inline}}content_scripts における include_globs と同様です。js{{optional_inline}}file または code プロパティを含み、その要素は css プロパティと同様です。matchAboutBlank{{optional_inline}}content_scripts における match_about_blank と同様です。matchescontent_scripts における matches と同様です。runAt{{optional_inline}}content_scripts における run_at と同様です。登録したコンテントスクリプトを削除することができる {{WebExtAPIRef("contentScripts.RegisteredContentScript")}} オブジェクトを引数に持つ Promise を返します。
したがって、コンテントスクリプトを登録する際は、少なくとも登録されたままであってほしいだけ存在する拡張機能ページから登録すべきです。
{{Compat("webextensions.api.contentScripts.register", 10)}}
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"
});
{{WebExtExamples}}