亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

Ueditor解決safari瀏覽器粘貼圖片問題

2024-04-27 15:08:30
字體:
來源:轉載
供稿:網友

1.修改ueditor.all.js文件中的inserthtml函數

/**

 * 插入html代碼

 * @command inserthtml

 * @method execCommand

 * @param { String } cmd 命令字符串

 * @param { String } html 插入的html字符串

 * @remaind 插入的標簽內容是在當前的選區位置上插入,如果當前是閉合狀態,那直接插入內容, 如果當前是選中狀態,將先清除當前選中內容后,再做插入

 * @warning 注意:該命令會對當前選區的位置,對插入的內容進行過濾轉換處理。 過濾的規則遵循html語意化的原則。

 * @example

 * ```javascr

    execCommand: function (command,html,notNeedFilter){

        var me = this,

            range,

            div;

        if(!html){

            return;

        }

        if(me.fireEvent('beforeinserthtml',html) ===true){

            return;

        }

        range = me.selection.getRange();

        div = range.document.createElement( 'div' );

        div.style.display = 'inline';

 

        if (!notNeedFilter) {

            var root = UE.htmlparser(html);

            //如果給了過濾規則就先進行過濾

            if(me.options.filterRules){

                UE.filterNode(root,me.options.filterRules);

            }

            //執行默認的處理

            me.filterInputRule(root);

            html = root.toHtml()

        }

        // 禁止safari瀏覽器

        if (html.indexOf('webkit-fake-url')>0 || html.indexOf('image.tiff')>0) {

        if (window.BrowserEvent) {

        // safari粘貼圖片彈窗提示

        BrowserEvent.PReventPasteTip();

        

        setTimeout("BrowserEvent.PreventPasteTip();", 1000);

        }

        return;

        }

        div.innerHTML = utils.trim( html );

 

        if ( !range.collapsed ) {

            var tmpNode = range.startContainer;

            if(domUtils.isFillChar(tmpNode)){

                range.setStartBefore(tmpNode)

            }

            tmpNode = range.endContainer;

            if(domUtils.isFillChar(tmpNode)){

                range.setEndAfter(tmpNode)

            }

            range.txtToElmBoundary();

            //結束邊界可能放到了br的前邊,要把br包含進來

            // x[xxx]<br/>

            if(range.endContainer && range.endContainer.nodeType == 1){

                tmpNode = range.endContainer.childNodes[range.endOffset];

                if(tmpNode && domUtils.isBr(tmpNode)){

                    range.setEndAfter(tmpNode);

                }

            }

            if(range.startOffset == 0){

                tmpNode = range.startContainer;

                if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){

                    tmpNode = range.endContainer;

                    if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){

                        me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';

                        range.setStart(me.body.firstChild,0).collapse(true)

 

                    }

                }

            }

            !range.collapsed && range.deleteContents();

            if(range.startContainer.nodeType == 1){

                var child = range.startContainer.childNodes[range.startOffset],pre;

                if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){

                    range.setEnd(pre,pre.childNodes.length).collapse();

                    while(child.firstChild){

                        pre.appendChild(child.firstChild);

                    }

                    domUtils.remove(child);

                }

            }

 

        }

        var child,parent,pre,tmp,hadBreak = 0, nextNode;

        //如果當前位置選中了fillchar要干掉,要不會產生空行

        if(range.inFillChar()){

            child = range.startContainer;

            if(domUtils.isFillChar(child)){

                range.setStartBefore(child).collapse(true);

                domUtils.remove(child);

            }else if(domUtils.isFillChar(child,true)){

                child.nodeValue = child.nodeValue.replace(fillCharReg,'');

                range.startOffset--;

                range.collapsed && range.collapse(true)

            }

        }

        //列表單獨處理

        var li = domUtils.findParentByTagName(range.startContainer,'li',true);

        if(li){

            var next,last;

            while(child = div.firstChild){

                //針對hr單獨處理一下先

                while(child && (child.nodeType == 3 || !domUtils.isBlockElm(child) || child.tagName=='HR' )){

                    next = child.nextSibling;

                    range.insertNode( child).collapse();

                    last = child;

                    child = next;

 

                }

                if(child){

                    if(/^(ol|ul)$/i.test(child.tagName)){

                        while(child.firstChild){

                            last = child.firstChild;

                            domUtils.insertAfter(li,child.firstChild);

                            li = li.nextSibling;

                        }

                        domUtils.remove(child)

                    }else{

                        var tmpLi;

                        next = child.nextSibling;

                        tmpLi = me.document.createElement('li');

                        domUtils.insertAfter(li,tmpLi);

                        tmpLi.appendChild(child);

                        last = child;

                        child = next;

                        li = tmpLi;

                    }

                }

            }

            li = domUtils.findParentByTagName(range.startContainer,'li',true);

            if(domUtils.isEmptyBlock(li)){

                domUtils.remove(li)

            }

            if(last){

 

                range.setStartAfter(last).collapse(true).select(true)

            }

        }else{

            while ( child = div.firstChild ) {

                if(hadBreak){

                    var p = me.document.createElement('p');

                    while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){

                        nextNode = child.nextSibling;

                        p.appendChild(child);

                        child = nextNode;

                    }

                    if(p.firstChild){

 

                        child = p

                    }

                }

                range.insertNode( child );

                nextNode = child.nextSibling;

                if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){

 

                    parent = domUtils.findParent( child,function ( node ){return domUtils.isBlockElm( node ); } );

                    if ( parent && parent.tagName.toLowerCase() !='body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){

                        if(!dtd[parent.tagName][child.nodeName]){

                            pre = parent;

                        }else{

                            tmp = child.parentNode;

                            while (tmp !== parent){

                                pre = tmp;

                                tmp = tmp.parentNode;

 

                            }

                        }

 

 

                        domUtils.breakParent( child, pre || tmp );

                        //去掉break后前一個多余的節點  <p>|<[p> ==> <p></p><div></div><p>|</p>

                        var pre = child.previousSibling;

                        domUtils.trimWhiteTextNode(pre);

                        if(!pre.childNodes.length){

                            domUtils.remove(pre);

                        }

                        //trace:2012,在非ie的情況,切開后剩下的節點有可能不能點入光標添加br占位

 

                        if(!browser.ie &&

                            (next = child.nextSibling) &&

                            domUtils.isBlockElm(next) &&

                            next.lastChild &&

                            !domUtils.isBr(next.lastChild)){

                            next.appendChild(me.document.createElement('br'));

                        }

                        hadBreak = 1;

                    }

                }

                var next = child.nextSibling;

                if(!div.firstChild && next && domUtils.isBlockElm(next)){

 

                    range.setStart(next,0).collapse(true);

                    break;

                }

                range.setEndAfter( child ).collapse();

 

            }

 

            child = range.startContainer;

 

            if(nextNode && domUtils.isBr(nextNode)){

                domUtils.remove(nextNode)

            }

            //用Chrome可能有空白展位符

            if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){

                if(nextNode = child.nextSibling){

                    domUtils.remove(child);

                    if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){

 

                        range.setStart(nextNode,0).collapse(true).shrinkBoundary()

                    }

                }else{

 

                    try{

                        child.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';

                    }catch(e){

                        range.setStartBefore(child);

                        domUtils.remove(child)

                    }

 

                }

 

            }

            //加上true因為在刪除表情等時會刪兩次,第一次是刪的fillData

            try{

                range.select(true);

            }catch(e){}

 

        }

 

        setTimeout(function(){

            range = me.selection.getRange();

            // 此行代碼是控制插入表情之后頁面滾動的

//            range.scrollToView(me.autoHeightEnabled,me.autoHeightEnabled ? domUtils.getXY(me.iframe).y:0);

            me.fireEvent('afterinserthtml', html);

        },200);

    }

};


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩国产在线播放| 欧美性猛xxx| 亚洲影院色无极综合| 亚洲成人在线视频播放| 亚洲精品电影在线| 亚洲精品影视在线观看| 成人国产精品久久久| 国产精品美女呻吟| 国产一区视频在线| 亚洲高清av在线| 亚洲激情视频在线| 91精品国产高清| 日韩精品免费在线视频观看| 国产综合福利在线| 成人久久一区二区| 欧美午夜宅男影院在线观看| 中文字幕av一区二区三区谷原希美| 久久在线视频在线| 亚洲成人亚洲激情| 播播国产欧美激情| 国产精品美女主播| 国产精品高潮呻吟久久av野狼| 久久国产一区二区三区| 亚洲视频精品在线| 狠狠色狠狠色综合日日小说| 国产美女精彩久久| 亚洲欧美制服丝袜| 国产精品第七十二页| 久久免费在线观看| 97精品在线观看| 亚洲女人天堂视频| 欧美极品少妇全裸体| 欧美精品情趣视频| www.久久撸.com| 美日韩丰满少妇在线观看| 欧美激情一级精品国产| 自拍偷拍免费精品| 97在线视频免费看| 成人免费视频网| 久久99久久99精品免观看粉嫩| 欧美激情啊啊啊| 成人黄色午夜影院| 97在线免费视频| 欧美噜噜久久久xxx| 日韩精品视频在线| 成人激情视频在线播放| 九九热精品视频国产| 欧美午夜影院在线视频| 日韩精品视频免费在线观看| 亚洲成人久久一区| 国产日韩在线亚洲字幕中文| 欧美精品九九久久| 欧美黑人性生活视频| 成人黄色在线免费| 亚洲欧美在线免费观看| 日本成人激情视频| 日韩在线观看网站| 亚洲乱亚洲乱妇无码| 色樱桃影院亚洲精品影院| 69av成年福利视频| 国内成人精品一区| 国产精品老女人视频| 欧美富婆性猛交| 日韩av电影免费观看高清| 国产视频久久网| 精品国产乱码久久久久久天美| 亚洲色图综合网| 日韩视频精品在线| 亚洲高清久久网| 在线看日韩av| 成人福利免费观看| 亚洲精品福利在线观看| 国产在线播放不卡| 人妖精品videosex性欧美| 亚洲欧美日韩国产成人| 2019中文字幕免费视频| 精品国产乱码久久久久久婷婷| 亚洲激情中文字幕| 国产精品久久久久秋霞鲁丝| 欧美人在线视频| 国产精品视频永久免费播放| 日韩中文字幕在线视频| 精品成人乱色一区二区| 亚洲成人999| 91探花福利精品国产自产在线| 色偷偷噜噜噜亚洲男人| 中文字幕欧美日韩| 久久大大胆人体| 日本精品视频网站| 国产精品视频久久| 久久综合网hezyo| 5252色成人免费视频| 蜜臀久久99精品久久久无需会员| 亚洲欧美一区二区三区情侣bbw| 中文字幕一区电影| 91精品国产91久久久久久久久| 91国产精品电影| 国内精品久久久久影院 日本资源| 亚洲欧美中文日韩v在线观看| 色综合久久精品亚洲国产| 亚洲аv电影天堂网| 亚洲电影免费在线观看| 91色精品视频在线| 日韩av影院在线观看| 亚洲欧美国产制服动漫| 91免费的视频在线播放| 97国产精品视频| 国产97在线|日韩| 亚洲电影av在线| 欧美福利小视频| 午夜精品一区二区三区视频免费看| 欧美性在线观看| 国产精品久久久久9999| 日本一本a高清免费不卡| 国产日韩在线观看av| 亚洲第一黄色网| 欧美日韩一区二区精品| 91精品久久久久久久久久另类| 国模精品视频一区二区| 亚洲国产精品系列| 亚洲一区美女视频在线观看免费| 亚洲精品中文字| 国产精品久久一区主播| 国产精品国产三级国产aⅴ浪潮| 精品精品国产国产自在线| 色婷婷av一区二区三区久久| 96精品久久久久中文字幕| 88国产精品欧美一区二区三区| 欧美高清视频在线观看| 97婷婷涩涩精品一区| 国产在线拍偷自揄拍精品| 欧美在线视频一二三| 色婷婷成人综合| 久久久久久久999精品视频| 性日韩欧美在线视频| 日韩国产欧美精品在线| 久久人体大胆视频| 自拍视频国产精品| 欧美性xxxx极品hd满灌| 91成人天堂久久成人| 欧美不卡视频一区发布| 欧美野外猛男的大粗鳮| 久久精品一区中文字幕| 超碰精品一区二区三区乱码| 亚洲专区在线视频| 日本韩国欧美精品大片卡二| 奇米四色中文综合久久| 亚洲精品国产综合区久久久久久久| 精品亚洲男同gayvideo网站| 91香蕉亚洲精品| 欧美成年人视频网站欧美| 97久久伊人激情网| 欧美精品电影在线| 国产精品日韩在线一区| 91精品在线看| 欧美高清视频一区二区| 国产精品高潮呻吟久久av野狼| 91精品国产综合久久久久久久久| 欧美日韩国产一区在线| 精品视频偷偷看在线观看| 欧美亚洲另类制服自拍| 国产精品无码专区在线观看| 97视频色精品| 红桃av永久久久|