在百度编辑器中,出于安全考虑,会将源码的div标签替换为p标签,li标签上的样式删除,自动生成 等。
这里根据以上说的三点进行解决:
div标签替换为p标签:
在ueditor.all.js文件内搜索allowDivTransToP,找到如下的代码,将true设置为false
me.setOpt({ 'allowDivTransToP':false, 'disabledTableInTable':true });
li标签上的样式删除:
在ueditor.all.js文件内,找到以下代码,注释掉即可
case 'li': var className = node.getAttr('class'); if (!className || !/list\-/.test(className)) { node.setAttr() } var tmpNodes = node.getNodesByTagName('ol ul'); UE.utils.each(tmpNodes, function (n) { node.parentNode.insertAfter(n, node); }); break;
自动生成 :
在ueditor.all.js文件中找到下面的代码,将 替换为‘’即可
function isText(node, arr) { if(node.parentNode.tagName == 'pre'){ // 源码模式下输入html标签,不能做转换处理,直接输出 arr.push(node.data) }else{ arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,' ')) } }
li标签内自动加p标签:在ueditor.all.js文件内,找到以下代码,注释掉即可
utils.each(root.getNodesByTagName('li'),function(li){ var tmpP = UE.uNode.createElement('p'); for(var i= 0,ci;ci=li.children[i];){ if(ci.type == 'text' || dtd.p[ci.tagName]){ tmpP.appendChild(ci); }else{ if(tmpP.firstChild()){ li.insertBefore(tmpP,ci); tmpP = UE.uNode.createElement('p'); i = i + 2; }else{ i++; } } } if(tmpP.firstChild() && !tmpP.parentNode || !li.firstChild()){ li.appendChild(tmpP); } //trace:3357 //p不能为空 if (!tmpP.firstChild()) { tmpP.innerHTML(browser.ie ? ' ' : '<br/>') } //去掉末尾的空白 var p = li.firstChild(); var lastChild = p.lastChild(); if(lastChild && lastChild.type == 'text' && /^\s*$/.test(lastChild.data)){ p.removeChild(lastChild) } });
参考:http://blog.csdn.net/shahexiaoxiami/article/details/44103009