根据Clipboard Write API specification,我可以像下面这样复制到剪贴板:
const type = "text/plain";
const text = "test plain";
const blob = new Blob([text], { type });
const data = [new ClipboardItem({ [type]: blob })];
navigator.clipboard.write(data).then(
() => {alert('success plain copy')},
() => {}
);
我尝试过那个,它有效了。但是我尝试将类型更改为HTML或富文本,如下所示:
const type = "text/html"
const text = "<b>text html</b>";
const blob = new Blob([text], { type });
const data = [new ClipboardItem({ [type]: blob })];
navigator.clipboard.write(data).then(
() => {alert('success html copy')},
() => {}
);
它没有起作用。成功的提示框弹出了,但HTML文本没有被复制。
我进行了在线研究,并根据我的发现,我的代码似乎是正确的。然而,令人困惑的是为什么它不能按预期运行。
顺便说一句,实际上我想创建一个SO片段,但权限被阻止,所以如果其他人想尝试我的代码,可以在jsfiddle上检查。