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

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

<a href='mailto:'>微wx笑</a>的头像微wx笑 2019-09-04网页网站 27 0关键字:   

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

百度UEditor远程图片抓取代码存在的BugHCo无知


HCo无知

帝国CMS后台编辑器改为了百度UEditor,但在使用的过程中发现了一个Bug。HCo无知

就是在粘贴来自微信公众号的图片时,后台已经返回成功了,但是客户端脚本在做图片URL地址比较的时候存在Bug,导致最终不成功。HCo无知


HCo无知

远程抓取的图片地址:HCo无知

https://mmbiz.qpic.cn/mmbiz_jpg/icpB1HHeTK319UXVXSXIUnYRDYTX95lJzLp0c6xMLnicL6icjFvDHzGiby5KbEz0CXDJOSOb2ia35rlOVxbYDvklhbw/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1HCo无知

HCo无知

通过下图的控制台输出可以看出,后台返回的 cj.source 被转义了。而比较的时候却没有对本地取得的图片URL进行编码或对后台返回的图片URL进行解码,所以导致对比失败,最终结果是抓取失败。HCo无知

image.pngHCo无知

解决方法:HCo无知

对返回的URL进行替换HCo无知

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

关键代码:
HCo无知

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

大概在 ueditor.all.js 的 23248 行,压缩过的文件只有一行,自己试着找一下吧。
HCo无知

HCo无知

另外,UEditor官方代码库关闭了issues功能,我Fork了一份,开启了issues功能,大家在使用中发现问题欢迎提交,https://github.com/ivu4e/ueditor/issuesHCo无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.com/blog/web/2019-09-04/186.html

很赞哦! () 有话说 ()

相关文章