信息
目的:makdown富文本編輯器,支持複製粘貼圖片
參考文章:editor.md實現拖拽剪切複製粘貼上傳圖片,文件插件
使用該片文章前提條件:已經能夠使用django-mdeditor進行編輯、保存文件
方法
1. 查看admin的change頁面的源碼
有配置mdeditoreditormd("id_body-wmd-wrapper",
的js方法,在mdeditor庫裏去搜索找到了在markdown.html文件裏
2. 修改\site-packages\mdeditor\templates\markdown.html文件
- 第91行插入:
initPasteDragImg(this); //必須
- 在標籤裏插入:
function initPasteDragImg(Editor){
var doc = document.getElementById(Editor.id)
doc.addEventListener('paste', function (event) {
var items = (event.clipboardData || window.clipboardData).items;
var file = null;
if (items && items.length) {
// 搜索剪切板items
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf('image') !== -1) {
file = items[i].getAsFile();
break;
}
}
} else {
console.log("當前瀏覽器不支持");
return;
}
if (!file) {
console.log("粘貼內容非圖片");
return;
}
uploadImg(file,Editor);
});
var dashboard = document.getElementById(Editor.id)
dashboard.addEventListener("dragover", function (e) {
e.preventDefault()
e.stopPropagation()
})
dashboard.addEventListener("dragenter", function (e) {
e.preventDefault()
e.stopPropagation()
})
dashboard.addEventListener("drop", function (e) {
e.preventDefault()
e.stopPropagation()
var files = this.files || e.dataTransfer.files;
uploadImg(files[0],Editor);
})
}
function uploadImg(file,Editor){
var formData = new FormData();
var fileName=new Date().getTime()+"."+file.name.split(".").pop();
formData.append('editormd-image-file', file, fileName);
formData.append('content', '');
$.ajax({
url: Editor.settings.imageUploadURL,
type: 'post',
data: formData,
processData: false,
contentType: false,
dataType: 'json',
success: function (msg) {
var success=msg['success'];
if(success==1){
var url=msg["url"];
if(/\.(png|jpg|jpeg|gif|bmp|ico)$/.test(url)){
Editor.insertValue("![圖片alt]("+msg["url"]+" ''圖片title'')");
}else{
Editor.insertValue("[下載附件]("+msg["url"]+")");
}
}else{
console.log(msg);
alert("上傳失敗");
}
}
});
}