《百度umeditor在線編輯器插入鏈接查看源碼后變成http://undefined》要點(diǎn):
本文介紹了百度umeditor在線編輯器插入鏈接查看源碼后變成http://undefined,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:ueditor在線編輯器
今天發(fā)現(xiàn)百度umeditor在加載內(nèi)容中含有a標(biāo)簽超鏈接時(shí),會(huì)變成http://undefined
經(jīng)測試,實(shí)際上是內(nèi)容中有超鏈接或插入超鏈接后,只要一切換到源代碼界面,就會(huì)把超鏈接自動(dòng)替換成http://undefined
比如,內(nèi)容中含有http://www.snjht.com 維易PHP學(xué)院,切換成源代碼后,就變成如圖:
經(jīng)查看官網(wǎng)http://ueditor.baidu.com/website/umeditor.html 也有這現(xiàn)象,插入鏈接后切換到源碼2次,就被替換掉了。
如果不切換到源碼,就不會(huì)被替換,如圖:
因此。問題可以鎖定在源碼切換功能出現(xiàn)問題。
這個(gè)功能在umeditor.js第6907行左右
me.commands['source']
其中的 me.filterOutputRule(root); // 這里讓超鏈接變成 http://undefined ,通過跟蹤,我們把問題代碼鎖定在
a.setAttr('href', _href);
其中的 _href出問題了,它獲取方式var _href = a.getAttr('_href');這個(gè)_href的屬性不存在,因此獲得取undefined值。如圖:
因此,解決辦法:
把var _href = a.getAttr('_href');改成var _href = a.getAttr('href');
同時(shí)加一個(gè)過濾保險(xiǎn):if(_href!='http://undefined') a.setAttr('href', _href);
如圖:
對于umeditor.min.js,查找 ftp|https?|\/|file 可以快速定位到問題代碼處,并改動(dòng)如下:
搞定,刷新重新測試,問題解決了。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/125.html