Java集成editor.md开发markdonw程序使用的坑

标题记录一次使用editor.md开发markdonw遇到的无形大坑:

先说一下前几天的开发需求:需要在页面上实现markdown编辑器,如下图片,其实这也没问题,但是需要富文本和markdon随时切换,这样看似问题也不大,只能说too young,随后切换时就出现了各种错误,这里我只写比较坑爹的地方。
Java集成editor.md开发markdonw程序使用的坑_第1张图片
Java集成editor.md开发markdonw程序使用的坑_第2张图片

这是我参考的博主进行的开发:参考地址
Editor.md地址

 <div id="test-editormd">
     <!--该区域内容为文字内容,非html内容-->
     <textarea name="content" id="content" style="display:none;">这是我要提交的内容</textarea>
</div>

切换时遇到的第一个坑:根据按钮切换编辑器时,其实说白了就是两个div的显示与隐藏,但由富文本切换为markdown时,会出现不显示前4行的问题,请见下图:
Java集成editor.md开发markdonw程序使用的坑_第3张图片
切换时遇到的第二个坑:由富文本改为markdown时可以清除富文本里的内容,但由markdown切换为富文本时,却清除不了上面的

"); } $.getScript("${ctxStaticUrl}/statics/markdown/editor.md-master/js/editormd.js", function() { //这里的test-editormd为上面的markdown的div的id值 testEditormd = editormd("test-editormd", { width: "100%", height: 540, // saveHTMLToTextarea : true, // 保存 HTML 到 Textarea,true表示转化为html格式的内容也同样提交到后台 path : '/statics/markdown/editor.md-master/lib/', imageUpload : true, emoji: true, imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"], imageUploadURL : "${ctxStaticUrl}/help/editormdPic.do?id="+$("#id").val(),//markdown上传图片的地址 //上传图片成功后可以做一些自己的处理 /*onload: function () { this.watch(); this.width("100%"); this.height(480); },*/ }); }); ifMarkdown=true; } //文本框改变,分别隐藏和显示富文本和markdown对应的div $("input[name=editorType]").each(function(index , item){ $(item).on("click", function () { uditorOrMarkdownChange(); }) }) // 是否插入视频点击事件ifVideoClick function ifVideoClick(value) { if (eval(value)) { $(".video-content").show(); //把编辑器改为editor,且只读 $("input[name=editorType][value=EDITOR]").prop("checked", "checked"); //注意:这里改为disabled的,后台是接收不到这个值的,需要接收的自己注意 $("input[name=editorType]").attr("disabled","disabled"); //显示uditor的div,隐藏markdown的div }else { $(".video-content").hide(); //不添加视频,将编辑器只读属性移除 $("input[name=editorType]").removeAttr("disabled"); //清除vedioFiledId和vedioAppId width和height设为空 mini.get("videoFileId").setValue(''); mini.get("videoAppId").setValue(''); mini.get("videoWidth").setValue(''); mini.get("videoHeight").setValue(''); var content = umcontent.getContent(); umcontent.setContent(content.replace(video_tag, '')) } //显示文本框的div uditorOrMarkdownChange(); } //显示/隐藏 富文本和markdown的div function uditorOrMarkdownChange() { if ($("input[name=editorType]:checked").val() != "MARKDOWN"){ //显示富文本的div,隐藏markdown $("#ueditor").show(); if (ifMarkdown){ testEditormd.editor.remove(); $("#markdown").html(''); ifMarkdown=false; } }else { if (!ifMarkdown){ $.getScript("${ctxStaticUrl}/statics/markdown/editor.md-master/js/editormd.js", function() { $("#markdown").html('').append("
详细内容
"
); testEditormd = editormd("test-editormd", { width: "100%", height: 540, path : '/statics/markdown/editor.md-master/lib/', emoji: true, imageUpload : true, imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"], imageUploadURL : "${ctxStaticUrl}/help/editormdPic.do?id="+$("#id").val(),//markdown上传图片的地址 //上传图片成功后可以做一些自己的处理 onload: function () { this.watch(); this.width("100%"); this.height(480); }, }); ifMarkdown=true; }); } //显示markdown的div,隐藏富文本 $("#ueditor").hide(); //清除富文本内容 umcontent.setContent(''); } } } </script>

代码就贴出来这么多,如果大家遇到了和我一样的需求,希望不要走那么多弯路。

你可能感兴趣的:(闲文杂记)