我们目前有处理通过Dropzone.js上传所有图像的代码。这包括从剪贴板粘贴并通过dropzone.js上传的功能,该功能当前有效。这是事件代码:
document.onpaste = function(event)
{
alert('pasted');
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
for (index in items) {
var item = items[index];
if (item.kind === 'file') {
// adds the file to your dropzone instance
myDropzone.addFile(item.getAsFile());
}
}
}
在此之后,我们向该页面添加了CKEditor(v4.10)html文本编辑器。 CKEditor内置了自己的剪贴板处理功能。如果激活CKEditor(例如,通过单击文本区域),则CKEditor将从此点开始有效地控制剪贴板。这是正确的,因为我们希望编辑器能够仍然复制和粘贴文本。
但是,CKEditor本身没有内置图像上传功能。它需要一个插件。但是我们不希望使用此插件,而希望拦截粘贴事件,并且如果粘贴的数据是图像,则将其传递给我们的dropzone.js处理程序。
虽然我能够拦截该事件,但是我不确定我可以从CKEditor粘贴事件中提取哪些事件数据(如果有)以传递给Dropzone处理程序。这是到目前为止的代码:
var editor = CKEDITOR.instances.NoteText;
editor.on( 'paste', function( event )
{
alert('pasted ck');
console.dir(event);
//myDropzone.addFile(item.getAsFile());
} );
我尝试检查该事件,以查看是否有任何可用的东西供我使用,但似乎找不到任何东西。
我要实现的目标是可能的吗?我有可能以某种方式找到并从CKEditor将粘贴的事件数据传递给DropZone吗?还是我必须实现CKEditor图像上传插件?
谢谢。