百度的Ueditor編輯器出於安全考慮;css
用戶在html模式下粘貼進去的html文檔會自動被去除樣式和轉義。html
雖然安全的,可是很是不方便。 node
作一下修改把這個功能去掉。 安全
1、打開ueditor.all.js app
2、大概9300行找到 ///plugin 編輯器默認的過濾轉換機制,把下面的編輯器
'allowDivTransToP':truespa
值改爲false。爲true的時候會自動把div轉成p。 code
3、大概9429行,有個case 'li',這個是把li裏面的樣式去掉,把這個case註釋掉。 htm
4、大概14058行,下面的第一個utils.each功能註釋掉,這個是自動給li裏面的內容增長一個p。 blog
5、大概14220行,
node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/,'')) + ' list-paddingleft-' + type;
註釋掉,這個是自動給ul增長一個內置的樣式。
下面的14222行
li.style.cssText && (li.style.cssText = '');
註釋掉,這個是自動去除粘貼進去的代碼的li的style樣式
至此,咱們粘貼進去的html格式的ul和li就不會被轉義了。
上邊是引用,下邊是我多加的來滿在哪裏也都不加P或P里加BR等等等
在15112行左右:(下邊代碼註釋掉)
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) } });
在10079行左右:(註釋掉)[dl dd dt 元素就不會自動轉成 ul li 元素了]
node.tagName = 'ul';
node.tagName = 'li';
轉載自:http://os.zhongziyun.com/code/40030/