当前位置: 首页>編程日記>正文

c语言 复制到编辑页面 乱码,富文本编辑器的复制word到浏览器发生乱码(vue+wangEditor)...

c语言 复制到编辑页面 乱码,富文本编辑器的复制word到浏览器发生乱码(vue+wangEditor)...

啊,这个问题,厉害了

我们这边团队的前端技术栈是vue,因为之前我们前端研发小姐姐,在别的项目里面封装了wangEditor来用,看了下,emm,虽然功能好像不是很多,但是好的点在于之前的前端小姐姐已经封装好了,所以我懒,直接复制黏贴封装好的wangEditor的组件过来直接用,然后就不管了。

结果上线前一堆复制乱码的问题T.T。。。。我的锅唉。。。

主要表现为粘贴进去富文本编辑框还好好的

32a456c4311676bf7ff7d919c9a1368d.png

但是只要点击预览,我们是用的v-html指令将富文本的内容直接插入到另一个组件里面进行展示,然后麻烦就来了呜呜呜。。。

5b931da1145f3a1fb0fd0d7b05dd3f8f.png

冤孽。。。一堆word文档里面的标签你还不知道怎么搞。。。而且即将上线有人用了,非常紧急。。。

先是觉得时间赶不及,先百度了下,发现有这方面的文,上链接https://blog.csdn.net/weixin_43213137/article/details/102715072

but!因为这些标签,虽然能解决谷歌浏览器的问题,但是IE的edge浏览器我怎么试,底下都有可恶的””出现,而且在qq浏览器里面底下会有””出现。。。虽然我后来通过添加替换过滤解决了(如下所示),但是实际上console.log(html)还是能看到很多多余的word的标签,和很多空行)

// qq浏览器会把style标签显示出来移除style,// qq浏览器复制过来的文本会遗留style,进行全局替换html = html.replace(/?style[^>]*>/gi,'')

// microsoft edge的浏览器复制过来的文本会自带这strike,去掉// html = html.replace(/?strike[^>]*>/gi, '')//移除strike(直接移除没用,换成下面这行的移除办法)html = html.replace('

','')

html = html.replace(/(n[st]*r*n)/g,'n').replace(/^[nrnt]*|[nrnt]*$/g,'') //删除空行

而且以上办法其实一点都不高明,也不智能,也不万全,因为只要出了一些新的标签,不同浏览器的解释就是不同。。。连粘贴的文本的标签位置都可以不同。。。

之前我们这边cto介绍说,kindEditor的演示界面,复制word文档的内容进去,预览是正常的哟~,然后我就觉得诶~可以看看!看到希望了

幸好kindEditor是开源的,给大家上github地址:https://github.com/kindsoft/kindeditor

其中看代码的步骤是这样的:

1、kindEditor的主要的富文本插件的入口在src/main.js里面

2a2901431ee33ea4b09d669bfeb94391.png

如图里面有对word的内容作了专门的处理,然后接下来就是开干抄就行了

2、从下图可以看出,其实kindEditor对word内容的处理是跟上面我说的那个文章的思路是差不多的,首先把一些显而易见的东西先replace掉

b387253ca3fecb1d25cf9d5da8aa6d61.png

tips: 代码图里面的console.log都是我自己加的,为了调试代码hhhhh,大家休要误会~

3、然后将上面第一步清理好的html文本内容丢到format的函数里进行进一步的处理

610c936eb7d8dc49d37978d30b25b4f7.png

因为这边的这个format的处理非常的长,具体也就以下的操作:

删除script和style内容

去掉空行

空的标签的处理

无闭合标签自动添加斜线

标签里面的class、attr、style、等等的处理

吧啦吧啦吧啦~反正就是很鬼长,抄就是了~,里面用到很多一些数据细微的处理的自定义的函数,其实也都是小的东西,抄就是了~

最后结果就是预览正常了,那些标签全不见了,太开心了~~~~

a9446cd41f5beb6dc1a95ac498246b70.png

最大的收获其实是看kindEditor的源码,感觉十分规范,虽然很多东西写的不是那么的es6的那种import和export的方式,导致一个js文件上千行(main.js就有1600行左右),但是它的注释很全面,而且比较规范,哪里是修复了什么问题都看得到,所以读代码感觉很容易很舒服,基本每行都能懂它是干什么的,这极好~

解决了个问题之后觉得加班干也值得~之后可以考虑继续用wangEditor,封装的更完善些,作为公共组件来使用。

完结撒花!


https://www.fengoutiyan.com/post/14426.html

相关文章:

  • 乱码编辑器
  • 135编辑器复制后变乱码
  • vscode控制台输出乱码
  • 96编辑器复制过来是一串乱码
  • vscode运行c语言中文乱码
  • c语言编辑器电脑版
  • c语言手机编辑器
  • pdf编辑后出现乱码
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機