欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > tinymce富文本支持word内容同时粘贴文字图片上传 vue2

tinymce富文本支持word内容同时粘贴文字图片上传 vue2

2025/5/11 5:38:02 来源:https://blog.csdn.net/qq_46376192/article/details/140487134  浏览:    关键词:tinymce富文本支持word内容同时粘贴文字图片上传 vue2

效果图

先放文件

文件自取tinymce: tinymce富文本简单配置及word内容粘贴图片上传

封装tinymce

文件自取:tinymce: tinymce富文本简单配置及word内容粘贴图片上传

页面引用组件

          <TinymceSimplify ref='TinymceSimplify'   v-model="knowledgeBlockItem.content" :disabled="disable" :height="530" class="filter-item" />import TinymceSimplify from '@/components/TinymceSimplify'components: {TinymceSimplify,},searchData(res) {this.knowledgeBlockItem.content=res.datathis.$refs.TinymceSimplify.changeVaulue(res.data)},





简单解释一下封装文件的内容
总体思路就是,找到粘贴的内容将img的src转换成Blob URI,这样页面可以正常展示图片了
src/components/TinymceSimplify/index

data() {return {//初始化配置myValue: this.value,init: {init_instance_callback: editor => {editor.on("paste", evt => {// 监听粘贴事件this.onPaste(evt);});},};},

提取图片信息,转换成Blob URI,再在监听事件中获取页面元素,将img src转换
 

  editor.on("NodeChange Change KeyUp SetContent", () => {this.hasChange = true;this.$nextTick(() => {console.log("输入?zhelieditor.getContent()");console.log("this.pasteChange", this.pasteChange);if (this.pasteChange) {// HTML字符串let htmlString = editor.getContent();// Blob URL数组let urls = this.blobUrlArr;// 使用DOMParser解析HTML字符串let parser = new DOMParser();let doc = parser.parseFromString(htmlString, "text/html");// 获取所有的<img>标签let imgs = doc.querySelectorAll("img");// 遍历imgs和urls数组,设置每个img的src属性imgs.forEach((img, index) => {if (index < urls.length) {// 确保不会越界img.src = urls[index];}});// 现在doc包含了修改后的DOM,但如果你需要将其转换回字符串,可以这样做:let modifiedHtmlString = doc.body.innerHTML;console.log("htmlContent8999", modifiedHtmlString);this.pasteChange = false;this.$nextTick(() => {editor.setContent(modifiedHtmlString);});}this.$emit("input", editor.getContent());});});editor.on("paste", (evt) => {// 监听粘贴事件this.onPaste(evt, editor);});},

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词