如何将 html 和纯文本复制到 javascript 中的剪贴板?

How to copy html and plain text to clipboard in javascript?

我尝试复制一个HTML和纯文本集到剪贴板,这样每个编辑都可以选择是粘贴text/html还是text/plain

我正在使用 navigator.clipboard.write()async clipboard api)。

技巧很简单,你可以将多个 blob 传递给一个 ClipboardItem:

const blob = new Blob([
    '<a href="https://whosebug.com/">goto stack</a>'
], { type: "text/html" });
const blobPlain = new Blob(['goto stack'], { type: "text/plain" });

navigator.clipboard.write([
    new ClipboardItem({
        [blob.type]: blob,
        [blobPlain.type]: blobPlain
    },),
])

Be aware this will not work in every browser (right now).