百度的Ueditor编辑器出于安全考虑;
用户在html模式下粘贴进去的html文档会自动被去除样式和转义。
虽然安全的,但是非常不方便。
做一下修改把这个功能去掉。
一、打开ueditor.all.js
二、大概9300行找到 ///plugin 编辑器默认的过滤转换机制,把下面的
'allowDivTransToP':true
值改成false。为true的时候会自动把div转成p。
三、大概9429行,有个case 'li',这个是把li里面的样式去掉,把这个case注释掉。
四、大概15112行 或者搜索:(//进入编辑器的li要套p标签),下面的第一个utils.each功能注释掉,这个是自动给li里面的内容
增加一个p。 注释掉,function(li){/*...............*/}函数里的内容。
五、大概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'
;
|