var contentImport = {}; var g = $G; contentImport.data = { result: null, }; contentImport.init = function (opt, callbacks) { addUploadButtonListener(); addOkListener(); }; function processWord(file) { $('.file-tip').html('正在转换Word文件,请稍后...'); $('.file-result').html('').hide(); var reader = new FileReader(); reader.onload = function (loadEvent) { mammoth.convertToHtml({ arrayBuffer: loadEvent.target.result }) .then(function displayResult(result) { $('.file-tip').html('转换成功'); contentImport.data.result = result.value; $('.file-result').html(result.value).show(); }, function (error) { $('.file-tip').html('Word文件转换失败:' + error); }); }; reader.onerror = function (loadEvent) { $('.file-tip').html('Word文件转换失败:' + loadEvent); }; reader.readAsArrayBuffer(file); } function processMarkdown( markdown ){ var converter = new showdown.Converter(); var html = converter.makeHtml(markdown); $('.file-tip').html('转换成功'); contentImport.data.result = html; $('.file-result').html(html).show(); } function processMarkdownFile(file) { $('.file-tip').html('正在转换Markdown文件,请稍后...'); $('.file-result').html('').hide(); var reader = new FileReader(); reader.onload = function (loadEvent) { processMarkdown( loadEvent.target.result ); }; reader.onerror = function (loadEvent) { $('.file-tip').html('Markdown文件转换失败:' + loadEvent); }; reader.readAsText(file, "UTF-8"); } function addUploadButtonListener() { g('contentImport').addEventListener('change', function () { const file = this.files[0]; const fileName = file.name; const fileExt = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); switch (fileExt) { case 'docx': case 'doc': processWord(file); break; case 'md': processMarkdownFile(file); break; default: $('.file-tip').html('不支持的文件格式:' + fileExt); break; } }); g('fileInputConfirm').addEventListener('click', function () { processMarkdown( g('fileInputContent').value ); $('.file-input').hide(); }); } function addOkListener() { dialog.onok = function () { if (!contentImport.data.result) { alert('请先上传文件识别内容'); return false; } editor.fireEvent('saveScene'); editor.execCommand("inserthtml", contentImport.data.result); editor.fireEvent('saveScene'); }; dialog.oncancel = function () { }; }