《百度umeditor在线编辑器插入链接查看源码后变成http://undefined》要点:
本文介绍了百度umeditor在线编辑器插入链接查看源码后变成http://undefined,希望对您有用。如果有疑问,可以联系我们。
今天发现百度umeditor在加载内容中含有a标签超链接时,会变成http://undefined
经测试,实际上是内容中有超链接或插入超链接后,只要一切换到源代码界面,就会把超链接自动替换成http://undefined
比如,内容中含有http://www.jb51.cc 编程之家PHP学院,切换成源代码后,就变成如图:
经查看官网http://ueditor.baidu.com/website/umeditor.html 也有这现象,插入链接后切换到源码2次,就被替换掉了。
如果不切换到源码,就不会被替换,如图:
因此。问题可以锁定在源码切换功能出现问题。
这个功能在umeditor.js第6907行左右
me.commands['source']
其中的 me.filterOutputRule(root); // 这里让超链接变成 http://undefined ,通过跟踪,我们把问题代码锁定在
a.setAttr('href', _href);
其中的 _href出问题了,它获取方式var _href = a.getAttr('_href');这个_href的属性不存在,因此获得取undefined值。如图:
因此,解决办法:
把var _href = a.getAttr('_href');改成var _href = a.getAttr('href');
同时加一个过滤保险:if(_href!='http://undefined') a.setAttr('href',_href);
如图:
对于umeditor.min.js,查找 ftp|https?|\/|file 可以快速定位到问题代码处,并改动如下:
搞定,刷新重新测试,问题解决了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。