百度編輯器 多圖片批量上傳 順序混亂問題 ueditor

我上一個版本用的是ueditor1.3.6,自從1.4.2版之後,「前端上傳模塊統一改用webuploader」,ueditor在多圖上傳一直考慮漏掉了圖片順序的問題。
個人網站在用戶上傳圖片文章的時候,使用多圖上傳,點確認後,編輯框內的圖片順序是亂的。
看webuploader的問題在於多線程上傳,ueditor對「uploadSuccess」的處理是上傳成功一張,就加入到數組中,這樣若是圖片上傳完成順序是亂的,最終加入文本框的順序也亂了。
我這裏修改了一下js,供你們參考,但願ueditor能改進這個問題:
vim dialogs/image/image.js前端

716 uploader.on('uploadSuccess', function (file, ret) {
717 var $file = $('#' + file.id);
718 try {
719 var responseText = (ret._raw || ret),
720 json = utils.str2json(responseText);
721 if (json.state == 'SUCCESS') {
722 _this.imageList[$file.index()] = json; // 修改這裏:按選擇好的文件列表順序存儲
723 $file.append('');
724 } else {
725 $file.find('.error').text(json.state).show();
726 }
727 } catch (e) {
728 $file.find('.error').text(lang.errorServerUpload).show();
729 }
730 });web

 

針對dialogs/image/image.js,若是按照上面的方式修改了ln:722行,接下來ln:769行左右的getInsertList函數也要同步修改一下。避免出現這類狀況:arr = [];arr[0]=obj0;arr[2]=obj2;而後去嘗試讀取arr[1]的屬性。json

getInsertList: function () {
var i, data, list = [],
align = getAlign(),
prefix = editor.getOpt('imageUrlPrefix');
for (i = 0; i < this.imageList.length; i++) {
data = this.imageList[i];
if(data == undefined){//源自於對line:(722或721)的修改,避免部分圖片上傳失敗,或者選擇的圖片不符合規範不能參與上傳而形成imageList數組中出現的undefined項
continue;
}
list.push({
src: prefix + data.url,
_src: prefix + data.url,
title: data.title,
alt: data.original,
floatStyle: align
});
}
return list;
}vim

相關文章
相關標籤/搜索