欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ueditor不自动加P,不转义解决方法

百度的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 ? '&nbsp;' '<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://blog.csdn.net/qq285679784/article/details/77076280

普通分类: