38 lines
1.5 KiB
JavaScript
38 lines
1.5 KiB
JavaScript
|
KindEditor.plugin('paste', function(K) {
|
||
|
var editor = this,
|
||
|
name = 'paste';
|
||
|
var contentWindow = document.getElementsByTagName('iframe')[0].contentWindow;
|
||
|
contentWindow.document.getElementsByTagName('body')[0].onpaste = function(event) {
|
||
|
// use event.originalEvent.clipboard for newer chrome versions
|
||
|
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
|
||
|
console.log(JSON.stringify(items)); // will give you the mime types
|
||
|
// find pasted image among pasted items
|
||
|
var blob = null;
|
||
|
for (var i = 0; i < items.length; i++) {
|
||
|
if (items[i].type.indexOf("image") === 0) {
|
||
|
blob = items[i].getAsFile();
|
||
|
}
|
||
|
}
|
||
|
// load image if there is a pasted image
|
||
|
if (blob !== null) {
|
||
|
var reader = new FileReader();
|
||
|
reader.onload = function(event) {
|
||
|
console.log(event.target.result); // data url!
|
||
|
var data = new FormData();
|
||
|
data.append("imgFile", blob, "imageFilename.png");
|
||
|
$.ajax({
|
||
|
url: '/kindeditor/upload?dir=image',
|
||
|
contentType: false,
|
||
|
type: 'POST',
|
||
|
data: data,
|
||
|
processData: false,
|
||
|
success: function(data) {
|
||
|
editor.exec('insertimage', JSON.parse(data).url);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
reader.readAsDataURL(blob);
|
||
|
}
|
||
|
}
|
||
|
});
|