解决ueditor编辑器中自动抓取远程图片后内容中图片未替换为本地路径问题

ueditor版本:1.4.3.3

问题描述:

ueditor中设置了自动抓取远程图片,服务器抓取和返回都正常,但是编辑器中却没有正确替换为本地图片路径。如下:
服务器返回值.png
编辑器.png

通过查看ueditor源码,ueditor使用的抓取远程图片的js文件为_src/plugins/catchremoteimge.js,定位到源码大约第67行,如下,控制台打印一下:
问题查找.png

这里发现oldSrc==cj.source是false,打印出的oldSrc和cj.source如下:
oldSrc&cj.source.png

再看下服务器端的代码,发现服务器再返回值的时候对url中的特殊字符进行了转义,如下:
服务端代码.png

到这里问题就很明显了,由于服务端对返回的源图片地址进行了转义导致js判断时出现偏差直接跳过替换代码,理所当然编辑器中的图片路径不会替换了。

解决方案:

  1. 修改服务器代码中的htmlspecialchars为htmlspecialchars_decode即可(补充:关于为什么不是直接去掉htmlspecialchars,因为经测试,直接去掉之后输出的图片路径依然存在已经转义的情况,所以还是直接htmlspecialchars_decode为好)。
  2. 在js中加入如下函数,并使用该函数对cj.source进行反转义处理,然后重新编译即可。
function htmlspecialchars_decode(str){
     str = str.replace(/&/g, '&');
     str = str.replace(/&lt;/g, '<');
     str = str.replace(/&gt;/g, '>');
     str = str.replace(/&quot;/g, "''");
     str = str.replace(/&#039;/g, "'");
     return str;
}

至此问题解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,281评论 0 4
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,181评论 17 410
  • 这个世界,最美好的不过是相遇,不管能否相知相爱。 这个世界,不大不小,而我们却能遇见, 这是不是叫做缘分? 或是一...
    一三遇见一四阅读 384评论 0 0
  • 我常从明亮的梦中醒来 睁眼瞬间的恍惚 是不知身处何乡的迷茫 那一刻 仿佛灵魂脱离了身体漂浮着 我在黑暗中睁眼 沉默...
    嘘看陨石阅读 261评论 0 2
  • 我之前分享过网络营销人群的四种类型,每一种都说明了一部分人群,现在分享一下如果是刚开始做网络营销从哪里开始? 一个...
    企邦在线阅读 426评论 0 1