aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/clipboard/read
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/api/clipboard/read
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/ja/web/api/clipboard/read')
-rw-r--r--files/ja/web/api/clipboard/read/index.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/files/ja/web/api/clipboard/read/index.html b/files/ja/web/api/clipboard/read/index.html
new file mode 100644
index 0000000000..2fc53c2dd4
--- /dev/null
+++ b/files/ja/web/api/clipboard/read/index.html
@@ -0,0 +1,94 @@
+---
+title: Clipboard.read()
+slug: Web/API/Clipboard/read
+tags:
+ - API
+ - Clip
+ - Clipboard
+ - Clipboard API
+ - Editing
+ - Method
+ - Reference
+ - Scrap
+ - Text
+ - paste
+ - read
+translation_of: Web/API/Clipboard/read
+---
+<div>{{APIRef("Clipboard API")}}</div>
+
+<p><span class="seoSummary">{{domxref("Clipboard")}} インターフェイスの <strong><code>read()</code></strong> メソッドは、クリップボードの内容のコピーを要求し、戻り値の {{jsxref("Promise")}} が解決されたときにそのデータを取得できます。{{domxref("Clipboard.readText", "readText()")}} とは異なり、<code>read()</code> メソッドは画像など任意のデータを取得することができます。</span></p>
+
+<p>クリップボードから読み込みを行うためには、まず <code>"clipboard-read"</code> パーミッションを取得する必要があります。</p>
+
+<div class="note">
+<p><strong>注意:</strong> 非同期の Clipboard API と <a href="/ja/docs/Web/API/Permissions_API">Permissions API</a> は、ほとんどのブラウザーでは組み込み途中の状態です。そのため、パーミッションなどが公式仕様とは異なっていることがよくあります。これらのメソッドを使う前に {{anch("Browser_compatibility", "ブラウザー実装状況")}} を確認してください。</p>
+</div>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox">var <em>promise</em> = navigator.clipboard.read();</pre>
+
+<h3 id="Parameters" name="Parameters">パラメーター</h3>
+
+<p>なし。</p>
+
+<h3 id="Return_value" name="Return_value">戻り値</h3>
+
+<p>クリップボードの内容を持つ {{domxref("DataTransfer")}} に解決される、{{jsxref("Promise")}} オブジェクト。クリップボードへのアクセスが許可されない場合、この Promise は拒否される。</p>
+
+<h2 id="Example" name="Example">例</h2>
+
+<p>この使用例は、最初に {{domxref("Permissions.query", "navigator.permissions.query()")}} を使って <code>"clipboard-read"</code> 権限があるかどうか (またはプロンプトによってユーザーがそれを許可するかどうか) を調べ、その後クリップボードに現在あるデータを取得します。もしデータがプレーンテキストでない場合、エラーメッセージを表示します。そうでない場合は、変数 <code>textElem</code> により参照している要素の内容を、クリップボードの内容に置き換えます。</p>
+
+<pre class="brush: js">// まず、Permissions API を使って、
+// "clipboard-read" 機能を使えるかどうか確認します。
+
+navigator.permissions.query({name: "clipboard-read"}).then(result =&gt; {
+ // クリップボードの読み取りが許可されているか、またはプロンプトによって
+ // ユーザーがそれを許可する場合、処理を続行します。
+
+ if (result.state == "granted" || result.state == "prompt") {
+ navigator.clipboard.read().then(data =&gt; {
+ for (let i=0; i&lt;data.items.length; i++) {
+ if (data.items[i].type != "text/plain") {
+ alert("クリップボードの内容がテキストでないため、読み込めません。");
+ } else {
+ textElem.innerText = data.items[i].getAs("text/plain");
+ }
+ }
+ });
+ }
+});
+</pre>
+
+<div class="note">
+<p><strong>注意:</strong> 現時点で Firefox は <code>read()</code> を実装していますが、<code>"clipboard-read"</code> パーミッションは認識できません。そのため、<a href="/ja/docs/Web/API/Permissions_API">Permissions API</a> を使ってこの API にアクセスしようとしても、失敗するでしょう。</p>
+</div>
+
+<div class="note">
+<p><strong>日本語訳注:</strong> 翻訳時点 (2020/02/15) で、この使用例は Google Chrome (v80) でも実行できなくなっています。クリップボードから取得するデータの型が <code>DataTransfer</code> から <code><a href="https://www.w3.org/TR/clipboard-apis/#typedefdef-clipboarditems">ClipboardItems</a></code> に変更されるなど、仕様が変更されているためです。</p>
+</div>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様書</th>
+ <th scope="col">策定状況</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Clipboard API','#dom-clipboard-read','read()')}}</td>
+ <td>{{Spec2('Clipboard API')}}</td>
+ <td>初回定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2>
+
+
+
+<p>{{Compat("api.Clipboard.read")}}</p>