【发布时间】:2020-05-07 11:55:40
【问题描述】:
我正在尝试使用 navigator.clipboard.write(blob) 将 DOMString 复制到剪贴板。我可以使用 clipboard.writeText('text') 并复制它,但我需要 text/html。
失败的例子:
const copy = async () => {
await navigator.permissions.query({name: "clipboard-write"}).then(result => {
if (result.state == "granted" || result.state == "prompt") {
const data = new Blob(['<div>test</div>'], {type : 'text/html'})
navigator.clipboard.write(data);
}
})}
当我运行它时,我收到以下错误:
Uncaught (in promise) TypeError: Failed to execute 'write' on 'Clipboard': Iterator getter is not callable.
我也尝试将 text/html 更改为 text/plain,我认为这会使它的功能与 writeText 相同,但没有。
然后我尝试将 blob 包装在一个新的 ClipboardItem 中,这是我从另一个问题中找到的:
const data = new Blob(['<div>test</div>'], {type: 'text/html'})
const item = new ClipboardItem({'text/html': data});
navigator.clipboard.write(item);
任何指导将不胜感激。
【问题讨论】:
标签: javascript blob clipboard