根据 W3C 的说法,我应该如何在剪贴板中放置画布
How should I, according to W3C, put a canvas in clipboard?
复制操作可以使用粘贴事件来处理:
div.addEventListener("copy", function() { ... });
event
是可取消的,并与其他事件信息一起提供DataTransfer
对象:
var items = event.clipboardData;
此对象具有一个.setData
方法,该方法应允许您在剪贴板中添加数据。不幸的是,我似乎无法弄清楚它是如何工作的。文档已损坏(如果您单击setData
它会在错误的页面上导航您(。
我尝试了这样的事情:
function copy(event) {
var items = (event.clipboardData || event.originalEvent.clipboardData);
items.setData("image/png", _this.editor.selection.getSelectedImage());
event.preventDefault();
event.cancelBubble = true;
return false;
}
但根据 MDN,第二个参数也应该是字符串。
如何根据规范将数据放入剪贴板(无浏览器特定功能(?
我是剪贴板API规范的编辑。
首先,对断开的链接表示歉意。它实际上在官方TR中工作:
http://www.w3.org/TR/clipboard-apis/
但不在编辑器草案中,出于一些混乱的过程原因("官方"HTML5规范删除了剪贴板API规范所依赖的内容,硬编码指向官方HTML5规范的特定历史快照的链接似乎是一个坏主意 - 所以我需要决定是简单地链接到WHATWG规范还是等到假设的HTML6带来DnD回头的情况发生(。
现在,修复此链接实际上并不能解决您的问题 - 因为即使在所谓的前沿 WHATWG 规范中,setData(( 也被指定为获取字符串。Web技术是一项正在进行的工作,您遇到了(较旧的(setData((API没有考虑的用例。API的这一部分可以追溯到最初的Microsoft实现 公平地说,JavaScript本身当时并没有真正方便的方式来处理二进制数据。
您可能想要使用的是 clipboardData.items.add(( API 传入具有相关数据和类型的 File 对象。请注意,这还没有被广泛实现,例如AFAIK,它在任何当前版本的Firefox中都不受支持。您可以检测缺少剪贴板Data.items和.items.add((,例如告诉用户右键单击图像并手动选择"复制到剪贴板"。
- 如何在Firefox中获取剪贴板文本和html当用户按下“;Ctrl+V”;
- 零剪贴板复制文本后切换页面
- 复制到剪贴板在safari-angularjs中不起作用
- 使用javascript代码将HTML元素复制到剪贴板
- “复制到剪贴板”不起作用
- 使用jQuery/Javascript将忽略表头的表的内容复制到剪贴板
- 有没有任何方法可以将javascript对象从源代码传递到系统/浏览器剪贴板
- javascript中的复制到剪贴板功能
- 使用JavaScript访问Chrome扩展的剪贴板
- 将属性模型复制到剪贴板
- 如何使用剪贴板.js
- 零剪贴板在第一次点击时不起作用
- WinJs 复制到 Windows Phone 的剪贴板
- 使用扩展程序访问 Chrome 剪贴板活动
- JavaScript 自动将文本复制到剪贴板
- 只能在第二次单击时将副本复制到剪贴板
- 如何检测firefox中是否可以访问剪贴板
- 复制到剪贴板是't工作
- 如何在internet explorer中从剪贴板中获取base64编码的图像
- 根据 W3C 的说法,我应该如何在剪贴板中放置画布