网页网站您现在的位置是:首页 > 博客日志 > 网页网站

百度UEditor远程图片抓取代码存在的Bug

<a href='mailto:'>微wx笑</a>的头像微wx笑2019-09-04 17:02:12网页网站人已围观关键字:

简介帝国CMS后台编辑器改为了百度UEditor,但在使用的过程中发现了一个Bug。
就是在粘贴来自微信公众号的图片时,后台已经返回成功了,但是客户端脚本在做图片URL地址比较的时候存在Bug,导致最终不成功。

百度UEditor远程图片抓取代码存在的BugGOr编程技术_踩坑日志_进阶指南 - 无知人生


GOr编程技术_踩坑日志_进阶指南 - 无知人生

帝国CMS后台编辑器改为了百度UEditor,但在使用的过程中发现了一个Bug。GOr编程技术_踩坑日志_进阶指南 - 无知人生

就是在粘贴来自微信公众号的图片时,后台已经返回成功了,但是客户端脚本在做图片URL地址比较的时候存在Bug,导致最终不成功。GOr编程技术_踩坑日志_进阶指南 - 无知人生


GOr编程技术_踩坑日志_进阶指南 - 无知人生

远程抓取的图片地址:GOr编程技术_踩坑日志_进阶指南 - 无知人生

https://mmbiz.qpic.cn/mmbiz_jpg/icpB1HHeTK319UXVXSXIUnYRDYTX95lJzLp0c6xMLnicL6icjFvDHzGiby5KbEz0CXDJOSOb2ia35rlOVxbYDvklhbw/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1GOr编程技术_踩坑日志_进阶指南 - 无知人生

GOr编程技术_踩坑日志_进阶指南 - 无知人生

通过下图的控制台输出可以看出,后台返回的 cj.source 被转义了。而比较的时候却没有对本地取得的图片URL进行编码或对后台返回的图片URL进行解码,所以导致对比失败,最终结果是抓取失败。GOr编程技术_踩坑日志_进阶指南 - 无知人生

image.pngGOr编程技术_踩坑日志_进阶指南 - 无知人生

解决方法:GOr编程技术_踩坑日志_进阶指南 - 无知人生

对返回的URL进行替换GOr编程技术_踩坑日志_进阶指南 - 无知人生

if (oldSrc == cj.source.replace(/&amp;/ig, "&") && cj.state == "SUCCESS") {  //抓取失败时不做替换处理

关键代码:
GOr编程技术_踩坑日志_进阶指南 - 无知人生

cj.source.replace(/&amp;/ig, "&")

大概在 ueditor.all.js 的 23248 行,压缩过的文件只有一行,自己试着找一下吧。
GOr编程技术_踩坑日志_进阶指南 - 无知人生

GOr编程技术_踩坑日志_进阶指南 - 无知人生

另外,UEditor官方代码库关闭了issues功能,我Fork了一份,开启了issues功能,大家在使用中发现问题欢迎提交,https://github.com/ivu4e/ueditor/issuesGOr编程技术_踩坑日志_进阶指南 - 无知人生

本文由 微wx笑 创作,采用 CC BY-NC 4.0 许可协议。 非商业性使用可自由转载、引用、甚至修改,但需署名作者且注明出处。

很赞哦! () 有话说 ()

相关文章

站点信息

  • 建站时间:2018-10-24
  • 服务期限阿里云ECS 2027年到期
  • 主题模板:基于《今夕何夕》修改
  • 文章统计:210篇
  • 文章评论:15条
  • 文章阅读:2818次
  • 文章点赞:1026次
  • 微信公众号:扫描二维码,关注我们
  • 二维码-微信公众号-微wx笑