diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/mozilla/add-ons/webextensions/api/contentscripts | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/mozilla/add-ons/webextensions/api/contentscripts')
-rw-r--r-- | files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html | 47 | ||||
-rw-r--r-- | files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html | 107 |
2 files changed, 154 insertions, 0 deletions
diff --git a/files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html new file mode 100644 index 0000000000..d72cf1de1d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html @@ -0,0 +1,47 @@ +--- +title: contentScripts +slug: Mozilla/Add-ons/WebExtensions/API/contentScripts +tags: + - API + - Extensions + - Interface + - WebExtensions + - contentScripts + - インタフェース + - コンテントスクリプト + - 拡張機能 +translation_of: Mozilla/Add-ons/WebExtensions/API/contentScripts +--- +<div>{{AddonSidebar}}</div> + +<p>このAPIはコンテントスクリプトを登録するためにお使いいただけます。コンテントスクリプトを登録することで、指定したURLにマッチするページにそのスクリプトを挿入するようブラウザに指定することができます。</p> + +<p>このAPIは<code>manifest.json</code>にある"content_scripts"キーと似ていますが、"content_scripts"ではコンテントスクリプトとURLのパターンは<strong>インストールタイム</strong>に固定されます。<span class="seoSummary">一方<code>content_scripts</code> APIは、<strong>ランタイム(実行時)</strong>でスクリプトを登録・登録解除することが可能です。</span></p> + +<p>このAPIは、{{WebExtAPIRef("contentScripts.register()")}} メソッドを呼び出して使用していただけます。その際は、登録するコンテントスクリプト、URLのマッチングパターン、またその他のオプションを実引数(arguments)として渡してください。このメソッドは{{WebExtAPIRef("contentScripts.RegisteredContentScript")}} オブジェクトがresolveされた <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code> を返します。</p> + +<p><code>RegisteredContentScript</code> オブジェクトは <code>register()</code> で登録されたスクリプトを保持し、<code>unregister()</code>でそのスクリプトを登録解除(unregister)できます。また、コンテントスクリプトはそれらを作ったページが消された際にも自動的に登録解除されます。例えば、backgroundページによって登録されたコンテントスクリプトは、backgroundページが消去された際に自動的に登録解除されます。</p> + +<p><code>contentScripts</code> API にパーミッションは存在しませんが、拡張機能はregister()でマッチさせるURLにおいては適切な<a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">host permissions</a>を持っている必要があります。</p> + +<h2 id="Types">Types</h2> + +<dl> + <dt>{{WebExtAPIRef("contentScripts.RegisteredContentScript")}}</dt> + <dd> + <p>このタイプのオブジェクトは{{WebExtAPIRef("contentScripts.register()")}}関数の返り値です。{{WebExtAPIRef("contentScripts.register()")}}関数で登録されたコンテントスクリプトを持ち、このオブジェクトを使ってそれらを登録解除することができます。</p> + </dd> +</dl> + +<h2 id="Functions">Functions</h2> + +<dl> + <dt>{{WebExtAPIRef("contentScripts.register()")}}</dt> + <dd>コンテントスクリプトを登録します。</dd> +</dl> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p>{{Compat("webextensions.api.contentScripts", 10, 1)}}</p> + +<p>{{WebExtExamples("h2")}}</p> diff --git a/files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html new file mode 100644 index 0000000000..ec8cfeaa28 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html @@ -0,0 +1,107 @@ +--- +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 +--- +<div>{{AddonSidebar()}}</div> + +<p>このメソッドは一つ以上の content scripts を登録するときに使用します。</p> + +<p>manifest.json内の <code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> に似た一つのオブジェクトを引数に持ちます。<code>content_scripts</code> では配列ですが、この <code>register()</code> ではオブジェクトを引数に持ちます。</p> + +<p>これは <code><a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code> を返す非同期関数です。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox brush:js">var registering = browser.contentScripts.register( + contentScriptOptions // object +) +</pre> + +<h3 id="Parameters" name="Parameters">パラメーター</h3> + +<dl> + <dt><code>contentScriptOptions</code></dt> + <dd> + <p><code>object</code> です。<code>RegisteredContentScriptOptions</code> オブジェクトは登録するコンテントスクリプトを表します。<code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> と似た構文のオブジェクトで、その違いは以下の通りです。</p> + + <ul> + <li>プロパティ名にはスネーク形式ではなくキャメル形式を使用します (例えば、<code>excludeMatches</code>を使用します。<code>exclude_matches</code> ではありません)</li> + <li><code>js</code> プロパティと <code>css</code> プロパティには、相対パスのほかに文字列も指定できます。このため、登録したいものがどちらであるのかを明確にできる構文になっています。</li> + </ul> + + <p><code>RegisteredContentScriptOptions</code> は次のプロパティを持ちます:</p> + + <dl class="reference-values"> + <dt><code>allFrames</code>{{optional_inline}}</dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>all_frames</code> と同様です。</dd> + <dt><code>css</code>{{optional_inline}}</dt> + <dd>オブジェクトの配列。 それぞれのオブジェクトは <code>file</code> という名前の manifest.json からの相対パスで登録したい CSS ファイルを指定した URL の文字列を持つプロパティか、<code>code</code> という名前の登録したい CSS の文字列を持つプロパティを含みます。</dd> + <dt><code>excludeGlobs</code>{{optional_inline}}</dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>exclude_globs</code> と同様です。</dd> + <dt><code>excludeMatches</code>{{optional_inline}}</dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>exclude_matches</code> と同様です。</dd> + <dt><code>includeGlobs</code>{{optional_inline}}</dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>include_globs</code> と同様です。</dd> + <dt><code>js</code>{{optional_inline}}</dt> + <dd>オブジェクトの配列。各オブジェクトは <code>file</code> または <code>code</code> プロパティを含み、その要素は css プロパティと同様です。</dd> + <dt><code>matchAboutBlank</code>{{optional_inline}}</dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>match_about_blank</code> と同様です。</dd> + <dt><code>matches</code></dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>matches</code> と同様です。</dd> + <dt><code>runAt</code>{{optional_inline}}</dt> + <dd><code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> における <code>run_at</code> と同様です。</dd> + </dl> + </dd> +</dl> + +<h3 id="Examples" name="Examples">返り値</h3> + +<p>登録したコンテントスクリプトを削除することができる {{WebExtAPIRef("contentScripts.RegisteredContentScript")}} オブジェクトを引数に持つ <code><a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code> を返します。</p> + +<p><br> + <span class="message"><span class="content">現在、登録したコンテントスクリプトは、これを登録した拡張機能ページをアンロードしたときに削除されます。</span></span>したがって、コンテントスクリプトを登録する際は、少なくとも登録されたままであってほしいだけ存在する拡張機能ページから登録すべきです。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("webextensions.api.contentScripts.register", 10)}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<p><code>defaultCode</code> コンテントスクリプトを、すべての <code>.org</code> URL に対して登録します。</p> + +<pre class="brush: js">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);</pre> + +<p>次のコードは content_scripts/example.js にある JavaScript ファイルを登録します。</p> + +<pre class="brush: js" id="ct-3">const scriptObj = await browser.contentScripts.register({ + "js": [{file: "/content_scripts/example.js"}], + "matches": ["<all_urls>"], + "allFrames": true, + "runAt": "document_start" +}); +</pre> + +<p>{{WebExtExamples}}</p> |