使用 UEditor 编辑内容时,当需要一些列表时,如
- 和
- ,列表中的每一项 UEditor 会自动增加
标签,就算我切换到 HTML 模式下将
干掉后,再切换可视化状态就会自动又加上
标签。
解决办法
1、找到ueditor.all.js(我引用的是ueditor.all.js,有的人用的是ueditor.all.min.js)
2、搜索utils.each(root.getNodesByTagName('li'),function(li) 就可以找到以下代码,删掉或注释
//导出时,去掉p标签
//me.getOpt('disablePInList') === true && me.addOutputRule(function(root){
// utils.each(root.getNodesByTagName('li'),function(li){
// var newChildrens = [],index=0;
// utils.each(li.children,function(n){
// if(n.tagName == 'p'){
// var tmpNode;
// while(tmpNode = n.children.pop()) {
// newChildrens.splice(index,0,tmpNode);
// tmpNode.parentNode = li;
// lastNode = tmpNode;
// }
// tmpNode = newChildrens[newChildrens.length-1];
// if(!tmpNode || tmpNode.type != 'element' || tmpNode.tagName != 'br'){
// var br = UE.uNode.createElement('br');
// br.parentNode = li;
// newChildrens.push(br);
// }
// index = newChildrens.length;
// }
// });
// if(newChildrens.length){
// li.children = newChildrens;
// }
// });
//});
//进入编辑器的li要套p标签
//me.addInputRule(function(root){
// 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 ? ' ' : '
')
// }
// //去掉末尾的空白
// var p = li.firstChild();
// var lastChild = p.lastChild();
// if(lastChild && lastChild.type == 'text' && /^\s*$/.test(lastChild.data)){
// p.removeChild(lastChild)
// }
// });
// if(me.options.autoTransWordToList){
// var orderlisttype = {
// 'num1':/^\d+\)/,
// 'decimal':/^\d+\./,
// 'lower-alpha':/^[a-z]+\)/,
// 'upper-alpha':/^[A-Z]+\./,
// 'cn':/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,
// 'cn2':/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/
// },
// unorderlisttype = {
// 'square':'n'
// };
// function checkListType(content,container){
// var span = container.firstChild();
// if(span && span.type == 'element' && span.tagName == 'span' && /Wingdings|Symbol/.test(span.getStyle('font-family'))){
// for(var p in unorderlisttype){
// if(unorderlisttype[p] == span.data){
// return p
// }
// }
// return 'disc'
// }
// for(var p in orderlisttype){
// if(orderlisttype[p].test(content)){
// return p;
// }
// }
// }
// utils.each(root.getNodesByTagName('p'),function(node){
// if(node.getAttr('class') != 'MsoListParagraph'){
// return
// }
// //word粘贴过来的会带有margin要去掉,但这样也可能会误命中一些央视
// node.setStyle('margin','');
// node.setStyle('margin-left','');
// node.setAttr('class','');
// function appendLi(list,p,type){
// if(list.tagName == 'ol'){
// if(browser.ie){
// var first = p.firstChild();
// if(first.type =='element' && first.tagName == 'span' && orderlisttype[type].test(first.innerText())){
// p.removeChild(first);
// }
// }else{
// p.innerHTML(p.innerHTML().replace(orderlisttype[type],''));
// }
// }else{
// p.removeChild(p.firstChild())
// }
// var li = UE.uNode.createElement('li');
// li.appendChild(p);
// list.appendChild(li);
// }
// var tmp = node,type,cacheNode = node;
// if(node.parentNode.tagName != 'li' && (type = checkListType(node.innerText(),node))){
// var list = UE.uNode.createElement(me.options.insertorderedlist.hasOwnProperty(type) ? 'ol' : 'ul');
// if(customStyle[type]){
// list.setAttr('class','custom_'+type)
// }else{
// list.setStyle('list-style-type',type)
// }
// while(node && node.parentNode.tagName != 'li' && checkListType(node.innerText(),node)){
// tmp = node.nextSibling();
// if(!tmp){
// node.parentNode.insertBefore(list,node)
// }
// appendLi(list,node,type);
// node = tmp;
// }
// if(!list.parentNode && node && node.parentNode){
// node.parentNode.insertBefore(list,node)
// }
// }
// var span = cacheNode.firstChild();
// if(span && span.type == 'element' && span.tagName == 'span' && /^\s*( )+\s*$/.test(span.innerText())){
// span.parentNode.removeChild(span)
// }
// })
// }
//});
注意:有的是在P标签下添加li 那li标签会有p标签,这时手动删除p标签即可,再切换可视化状态就会自动又加上
标签。
原创地址:http://www.luofenming.com/show.aspx?id=ART2020060800001