feat: 更新 editor.md 的 image-dialog 插件代码,重写图片上传功能
This commit is contained in:
parent
13092e8814
commit
d7e01521ab
@ -46,12 +46,15 @@
|
|||||||
action += "&callback=" + settings.uploadCallbackURL + "&dialog_id=editormd-image-dialog-" + guid;
|
action += "&callback=" + settings.uploadCallbackURL + "&dialog_id=editormd-image-dialog-" + guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
var dialogContent = ( (settings.imageUpload) ? "<form action=\"" + action +"\" target=\"" + iframeName + "\" method=\"post\" enctype=\"multipart/form-data\" class=\"" + classPrefix + "form\">" : "<div class=\"" + classPrefix + "form\">" ) +
|
var imageFileName = classPrefix + "image-file";
|
||||||
|
// 删除 method="post" 让表单不会触发提交。后面使用 ajax 重写图片上传请求
|
||||||
|
var dialogContent = ( (settings.imageUpload) ? "<form action=\"" + action +"\" target=\"" + iframeName + "\" enctype=\"multipart/form-data\" class=\"" + classPrefix + "form\">" : "<div class=\"" + classPrefix + "form\">" ) +
|
||||||
( (settings.imageUpload) ? "<iframe name=\"" + iframeName + "\" id=\"" + iframeName + "\" guid=\"" + guid + "\"></iframe>" : "" ) +
|
( (settings.imageUpload) ? "<iframe name=\"" + iframeName + "\" id=\"" + iframeName + "\" guid=\"" + guid + "\"></iframe>" : "" ) +
|
||||||
"<label>" + imageLang.url + "</label>" +
|
"<label>" + imageLang.url + "</label>" +
|
||||||
"<input type=\"text\" data-url />" + (function(){
|
"<input type=\"text\" data-url />" + (function(){
|
||||||
return (settings.imageUpload) ? "<div class=\"" + classPrefix + "file-input\">" +
|
return (settings.imageUpload) ? "<div class=\"" + classPrefix + "file-input\">" +
|
||||||
"<input type=\"file\" name=\"" + classPrefix + "image-file\" accept=\"image/*\" />" +
|
// 这里增加 id = {imageFileName},方便后面拿到文件数据
|
||||||
|
"<input type=\"file\" name=\"" + imageFileName + "\" id=\"" + imageFileName + "\" accept=\"image/*\" />" +
|
||||||
"<input type=\"submit\" value=\"" + imageLang.uploadButton + "\" />" +
|
"<input type=\"submit\" value=\"" + imageLang.uploadButton + "\" />" +
|
||||||
"</div>" : "";
|
"</div>" : "";
|
||||||
})() +
|
})() +
|
||||||
@ -131,7 +134,7 @@
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileInput = dialog.find("[name=\"" + classPrefix + "image-file\"]");
|
var fileInput = dialog.find("[name=\"" + imageFileName + "\"]");
|
||||||
|
|
||||||
fileInput.bind("change", function() {
|
fileInput.bind("change", function() {
|
||||||
var fileName = fileInput.val();
|
var fileName = fileInput.val();
|
||||||
@ -161,23 +164,45 @@
|
|||||||
|
|
||||||
loading(false);
|
loading(false);
|
||||||
|
|
||||||
var body = (uploadIframe.contentWindow ? uploadIframe.contentWindow : uploadIframe.contentDocument).document.body;
|
// 注释掉官方写法,这里存在 iframe 跨域问题
|
||||||
var json = (body.innerText) ? body.innerText : ( (body.textContent) ? body.textContent : null);
|
// var body = (uploadIframe.contentWindow ? uploadIframe.contentWindow : uploadIframe.contentDocument).document.body;
|
||||||
|
// var json = (body.innerText) ? body.innerText : ( (body.textContent) ? body.textContent : null);
|
||||||
|
|
||||||
json = (typeof JSON.parse !== "undefined") ? JSON.parse(json) : eval("(" + json + ")");
|
// json = (typeof JSON.parse !== "undefined") ? JSON.parse(json) : eval("(" + json + ")");
|
||||||
|
|
||||||
if(!settings.crossDomainUpload)
|
// if(!settings.crossDomainUpload)
|
||||||
{
|
// {
|
||||||
if (json.success === 1)
|
// if (json.success === 1)
|
||||||
{
|
// {
|
||||||
dialog.find("[data-url]").val(json.url);
|
// dialog.find("[data-url]").val(json.url);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
alert(json.message);
|
// alert(json.message);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
// 重写图片上传方法
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append(imageFileName, $("#" + imageFileName)[0].files[0]);
|
||||||
|
var action = settings.imageUploadURL + (settings.imageUploadURL.indexOf("?") >= 0 ? "&" : "?") + "guid=" + guid;
|
||||||
|
$.ajax({
|
||||||
|
url: action,
|
||||||
|
type: "POST",
|
||||||
|
data: formData,
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
processData: false, // 使数据不做处理
|
||||||
|
contentType: false, // 不要设置 Content-Type 请求头
|
||||||
|
success: function (data) {
|
||||||
|
// 成功拿到结果放到这个函数 data就是拿到的结果
|
||||||
|
if (data.success === 1) {
|
||||||
|
dialog.find("[data-url]").val(data.url);
|
||||||
|
} else {
|
||||||
|
alert(data.message);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user