diff --git a/modules/editor/skins/xpresseditor/js/Xpress_Editor.js b/modules/editor/skins/xpresseditor/js/Xpress_Editor.js index 6345996a7..1b9aa5387 100644 --- a/modules/editor/skins/xpresseditor/js/Xpress_Editor.js +++ b/modules/editor/skins/xpresseditor/js/Xpress_Editor.js @@ -822,6 +822,7 @@ xe.W3CDOMRange = $.Class({ // for
, _getNodesBetween(b, c) will yield to b, "a" and c _getNodesBetween : function(oStartNode, oEndNode){ var aNodesBetween = []; + this._nNodesBetweenLen = 0; if(!oStartNode || !oEndNode) return aNodesBetween; @@ -837,10 +838,9 @@ xe.W3CDOMRange = $.Class({ var oNextToChk = oNode.nextSibling; while(!oNextToChk){ - if(!xe.DOMFix.parentNode(oNode)) return false; - oNode = xe.DOMFix.parentNode(oNode); + if(!(oNode = xe.DOMFix.parentNode(oNode))) return false; - aNodesBetween[aNodesBetween.length] = oNode; + aNodesBetween[this._nNodesBetweenLen++] = oNode; if(oNode == oEndNode) return false; @@ -866,7 +866,7 @@ xe.W3CDOMRange = $.Class({ } } - aNodesBetween[aNodesBetween.length] = oNode; + aNodesBetween[this._nNodesBetweenLen++] = oNode; if(bEndFound) return false; if(oNode == oEndNode) return false; @@ -1356,32 +1356,42 @@ xe.XpressRange = $.Class({ var aAllNodes = this._getNodesInRange(); var aResult = []; + var nResult = 0; + + var oNode, oTmpNode, iStartRelPos, iEndRelPos, oSpan, iSIdx, iEIdx, oParentNode; + var nInitialLength = aAllNodes.length; + var arAllBottmNodes = $(aAllNodes).filter(function(){ return !!this.childNodes.length }); - var oNode, iStartRelPos, iEndRelPos, oSpan, iSIdx, iEIdx; - var nInitialLength = aAllNodes.length; for(var i=0; i" + sURL + ""; this.oSelection.pasteHTML(str); }else{ var nSession = Math.ceil(Math.random()*10000); - var arg = ( sURL == "" ? ["unlink"] : ["createLink", false, this.sATagMarker+nSession+sURL] ); + var sMarker = this.sATagMarker+nSession; + var arg = ( sURL == "" ? ["unlink"] : ["createLink", false, sMarker+sURL] ); this.oApp.exec("EXECCOMMAND", arg); - this.oSelection.setFromSelection(); - + try { this.oSelection.setFromSelection() }catch(e){}; var oDoc = this.oApp.getWYSIWYGDocument(); - var aATags = oDoc.body.getElementsByTagName("A"); - var nLen = aATags.length; - var rxMarker = new RegExp(this.sRXATagMarker+nSession, "i"); - var elATag; - for(var i=0; i