我正在尝试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);
}
})}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,出现以下错误:
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': …Run Code Online (Sandbox Code Playgroud)