CanIUse.com显示,所有主流浏览器至少都有部分剪贴板API支持,而FF完全支持:https://caniuse.com/#feat=clipboard。
但是,我找不到任何教程或简单的例子,说明如何使用HTML5 (没有闪存)写入剪贴板。
有人知道部分支持到底是什么意思吗?这个特性有用吗?如果它只在Chrome/FF中工作,那就足以满足我的需要了。
发布于 2018-01-01 12:39:28
最近,我在以下浏览器(最新版本)中对W3C剪贴板API进行了深入的研究(直到本文还处于工作草案阶段):
Chrome和Firefox都支持W3C剪贴板API。可以使用getData和setData方法( https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData )将数据读写到剪贴板。
您可以在不同的MIME类型(甚至自定义类型)中设置数据。虽然与text/plain和text/html不同的东西在其他浏览器中是不可读的,但只有您设置数据的浏览器才能读取。
Edge支持W3C剪贴板API,其限制是只能使用MIME类型text/plain (或text)写入数据。其他任何东西都会抛出异常。但是,也有一个使用内容可编辑的div进行黑客攻击,您也可以用text/html MIME类型编写数据。
黑客可以在这里找到:https://stackoverflow.com/a/30905277/434742 (在答案中寻找"UPDATE: COPY“)
Internet 不支持W3C剪贴板API。不过,有一个custom implementation可用。但即使这样,也有与边缘相同的限制,这意味着您只能使用MIME类型text/plain (或text)编写数据。但是上面的边缘黑客也适用于。此外,您还只能使用MIME类型text/plain (或text)读取数据。但是还有另一种使用内容可编辑的div的攻击,您也可以用text/html MIME类型读取数据。
黑客可以在这里找到:https://stackoverflow.com/a/6804718/434742 (在答案中寻找“解决方案#2”)
TL;DR:您可以在上面提到的所有浏览器中复制和粘贴包括格式在内的文本。但是,对于Edge,特别是Internet,需要一些解决办法。
https://stackoverflow.com/questions/24293864
复制相似问题