【发布时间】:2013-05-09 06:05:28
【问题描述】:
我正在尝试读取我正在为 CKEditor 4 开发的插件的粘贴事件的 clipboardData 属性。
我已经确定,在 Chrome 中,如果我侦听文档对象中的粘贴事件,那么我在处理程序中传递的事件对象将包含 clipboardData 属性。我很惊讶地发现 Firefox (v20) 并非如此。
这是我在我的 CKEditor 插件中使用的代码,尽管我不认为这是一个仅与 CKEditor 相关的问题。在 Chrome 中我看到了 clipboardData 对象,在 Firefox 中我没有。
editor.document.on('paste', function(event) {
var clipboardData = event.data.$.clipboardData;
if (clipboardData) {
console.log(clipboardData);
}
});
我在 MDN 网站上看不到任何确认是否支持此功能的内容,我也相信 IE10 旨在支持此功能,但它可以在标准 API 上运行吗?
编辑:
我应该从一开始就明确这一点,但我正在尝试开发对粘贴图像的支持,因此我需要将剪贴板数据作为文件读取。
【问题讨论】:
-
一些(略过时的)关于此处支持的详细信息:quirksmode.org/dom/events/cutcopypaste.html。标准 API 在这里:dev.w3.org/2006/webapi/clipops(仍是草案)。如果您乐于进行代码潜水,请查看 Github 上关于检测对 Modernizr 的剪贴板 API 支持的讨论github.com/Modernizr/Modernizr/pull/659
-
提示:阅读
contentDomevent,因为您没有正确添加侦听器(或至少不是最佳)。 -
@Reinmar - 我在 contentDom 事件中使用那个 sn-p。这个问题真的不是关于CKEditor的!
-
我知道,我知道 :P 但作为核心开发人员,我觉得有义务提供帮助 :P。无论如何,如果你在
contentDom中使用它,那么 a) 它不会在contentDomUnload上被删除,b) 它可能会在 setData/switching 模式后停止工作。你应该使用editable.attachListener来避免问题(有时这真的很令人惊讶)。 -
太棒了!谢谢你的提示。介意我的插件功能更强大一点后我由你运行吗?
标签: javascript html ckeditor clipboarddata