aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/clipboard/write/index.html
blob: ef3cf82beb48626dea98e61dbdc97c95d72ea63c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
---
title: Clipboard.write()
slug: Web/API/Clipboard/write
translation_of: Web/API/Clipboard/write
---
<p>{{APIRef("Clipboard API")}}</p>

<div> </div>

<p> </p>

<div> </div>

<p><span class="seoSummary">{{domxref("Clipboard")}} 的方法 <strong><code>write()</code></strong> 写入图片等任意的数据到剪贴板。</span> 这个方法可以用于实现剪切和复制的功能。</p>

<p>但是你要提前获取 "<a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a>" 的 <code>"clipboard-write"</code> 权限才能将数据写入到剪贴板。</p>

<div class="note">
<p><strong>注意:</strong> 浏览器对这个异步剪贴板的 API 仍然在讨论中。所以在使用它之前请检查 <a href="#浏览器兼容性">浏览器兼容性</a> 和 {{SectionOnPage("/en-US/docs/Web/API/Clipboard", "Clipboard availability")}} 以获得更多的兼容性信息。</p>
</div>

<h2 id="语法">语法</h2>

<pre class="syntaxbox">var <em>promise</em> = navigator.clipboard.write(<em>dataTransfer</em>)</pre>

<h3 id="参数">参数</h3>

<dl>
 <dt><code>dataTransfer</code></dt>
 <dd>{{domxref("DataTransfer")}} 对象包含了要写入剪贴板的数据。</dd>
</dl>

<h3 id="返回值">返回值</h3>

<p>当数据被写入到剪贴板的时候,{{jsxref("Promise")}} resolve 回调被执行。如果剪贴板不能完成剪贴操作,{{jsxref("Promise")}}  reject 回调被执行。</p>

<h2 id="示例">示例</h2>

<p>这个例子展示了如何将当前剪贴板的内容替换为给定的内容。</p>

<pre class="brush: js">function setClipboard(text) {
  let data = new DataTransfer();

  data.items.add("text/plain", text);
  navigator.clipboard.write(data).then(function() {
    /* success */
  }, function() {
    /* failure */
  });
}
</pre>

<p>代码创建了一个 {{domxref("DataTransfer")}} 对象,要替换的内容存储在这里。执行 {{domxref("DataTransferItemList.add()")}} 将数据写入进去,然后执行 <code>write()</code> 方法,指定执行成功或错误的结果。</p>

<h2 id="规范">规范</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','#h-clipboard-write-data','write()')}}</td>
   <td>{{Spec2('Clipboard API')}}</td>
   <td>Initial definition.</td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>



<p>{{Compat("api.Clipboard.write")}}</p>