《百度umeditor在线编辑器插入链接查看源码后变成http://undefined》要点:
本文介绍了百度umeditor在线编辑器插入链接查看源码后变成http://undefined,希望对您有用。如果有疑问,可以联系我们。
相关主题:ueditor在线编辑器
今天发现百度umeditor在加载内容中含有a标签超链接时,会变成http://undefined
经测试,实际上是内容中有超链接或插入超链接后,只要一切换到源代码界面,就会把超链接自动替换成http://undefined
比如,内容中含有http://www.vephp.com 维易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 可以快速定位到问题代码处,并改动如下:
搞定,刷新重新测试,问题解决了。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/125.html