在使用uediter編輯html代碼的時候,div,span等標籤會莫名其妙的被過濾掉,而後上網查資料,改了點配置:html
1:在ueiter.all.js中找到allowDivTransToPnode
me.setOpt({ 'allowDivTransToP':true, 'disabledTableInTable':true });
把 true改成falseapp
me.setOpt({ 'allowDivTransToP':false, 'disabledTableInTable':true });
2:在ueditor.config.js中找到allowDivTransToP編輯器
//默認過濾規則相關配置項目 //,disabledTableInTable:true //禁止表格嵌套 //,allowDivTransToP:true //容許進入編輯器的div標籤自動變成p標籤 //,rgb2Hex:true //默認產出的數據中的color自動從rgb格式變成16進制格式
把true改成false測試
//默認過濾規則相關配置項目 //,disabledTableInTable:true //禁止表格嵌套 ,allowDivTransToP:false //容許進入編輯器的div標籤自動變成p標籤 //,rgb2Hex:true //默認產出的數據中的color自動從rgb格式變成16進制格式
3在ueditor.config.js中找到whitList白名單spa
有的地方說直接添加一個div[] span[] 相似於:code
可是下面已經配置有這兩項htm
因此我就根據個人須要,在這兩項中添加了'name','id'就像上圖。若是有其餘標籤就再添加blog
4在ueiter.all.js中找到me.addOutputRule...element
把該註釋的注視掉,代碼以下
//從編輯器出去的內容處理 me.addOutputRule(function (root) { var val; root.traversal(function (node) { if (node.type == 'element') { /*if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) { if (!node.firstChild()) node.parentNode.removeChild(node); else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) { node.parentNode.removeChild(node, true) } return; }*/ switch (node.tagName) { case 'div': if (val = node.getAttr('cdata_tag')) { node.tagName = val; node.appendChild(UE.uNode.createText(node.getAttr('cdata_data'))); node.setAttr({cdata_tag: '', cdata_data: '','_ue_custom_node_':''}); } break; case 'a': if (val = node.getAttr('_href')) { node.setAttr({ 'href': utils.html(val), '_href': '' }) } break; break; /*case 'span': val = node.getAttr('id'); if(val && /^_baidu_bookmark_/i.test(val)){ node.parentNode.removeChild(node) } break;*/ case 'img': if (val = node.getAttr('_src')) { node.setAttr({ 'src': node.getAttr('_src'), '_src': '' }) } } } }) }); };
5在ueiter.all.js中找到enterTag: 'p',改成:enterTag: '',這一步
而後以上的都改完以後,div和span標籤基本上標籤就不會被過濾了,可是悲催的是,我測試的時候span標籤又被過濾了
原有代碼:
<div class="td-text fl"> <span><p style="margin-top:60px;">初始</p></span>
</div> <div class="text-one fl"> <div class="one-one"> <span class="fl"><p>掛資質</p></span> <span class="fl"><p>1.2W/年</p></span> </div> <div class="one-two"> <span class="fl"><p>掛項目</p></span> <span class="fl"><p>1.3W/年</p></span> </div>
</div>
被過濾後的代碼:
<div class="td-text fl"> <p style="margin-top:60px;">初始</p> </div> <div class="text-one fl"> <div class="one-one"> <span class="fl"><p>掛資質</p></span> <span class="fl"><p>1.2W/年</p></span> </div> <div class="one-two"> <span class="fl"><p>掛項目</p></span> <span class="fl"><p>1.3W/年</p></span> </div> </div>
帶有class的span沒有被過濾,什麼都沒有的span被過濾了...什麼鬼,怎麼會這樣...
抓耳撓腮半小時以後,偶然的一瞥,看到ueiter.all.js中有一個autoClearEmptyNode:true,抱着試一試的態度,我給改爲了false,而後再一試,成了,那個什麼都沒有的span標籤沒有被過濾,我又試了好幾回,真的是這個問題~~趕忙記了下來~~哈哈,問題解決~~