- Timestamp:
- 03/05/07 10:41:46 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Xul_Cms/chrome/content/scenaricms/widgets/sctab/texteditor.xbl.xml
r8746 r8861 83 83 this.fDraftTextBox.style.color="#666666"; 84 84 85 //Controller copie de XEDInputController .85 //Controller copie de XEDInputController (nécessaire pour préservaion des espaces inséccables dans le copier/coller). 86 86 var vController = { 87 87 fInput : this.fEditorBox.inputField, … … 102 102 return; 103 103 } 104 //ut.debug("XEDInputController!!!!!!!"+pCmd);105 104 //On copie 106 105 var vSel = vEditor.selection; 106 if(vSel.isCollapsed) return; 107 107 var vRange = vSel.getRangeAt(0); 108 var vCurrNode = vRange.startContainer; 109 var vStartOffs = vRange.startOffset; 110 if(vCurrNode.nodeType!=3) { 111 vCurrNode = vCurrNode.fisrtChild; 112 if(vCurrNode.nodeType!=3) return; 113 vStartOffs = 0; 114 } 108 var vStartNode = vRange.startContainer; 115 109 var vEndNode = vRange.endContainer; 116 var vEndOffs = vRange.endOffset; 117 if(vEndNode.nodeType!=3) { 118 vEndNode = vEndNode.lastChild; 119 while(vEndNode && vEndNode.nodeType!=3) { 120 vEndNode = vEndNode.previsouSibling; 110 111 var vResult = ""; 112 113 if(vStartNode == vEndNode) { 114 vResult = vStartNode.substringData(vRange.startOffset, vRange.endOffset - vRange.startOffset); 115 } else { 116 var vTw = vStartNode.ownerDocument.createTreeWalker(vRange.commonAncestorContainer, NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT|NodeFilter.SHOW_CDATA_SECTION, null, true); 117 var vCurrNode = vTw.currentNode; 118 while(vCurrNode && vCurrNode != vStartNode) vCurrNode = vTw.nextNode(); 119 120 if(vCurrNode == vStartNode) { 121 if(vStartNode.nodeType==3) { 122 vResult += vStartNode.substringData(vRange.startOffset, vStartNode.length - vRange.startOffset); 123 vCurrNode = vTw.nextNode(); 124 } else { 125 vCurrNode = vTw.currentNode = vStartNode.childNodes.item(vRange.startOffset); 126 } 121 127 } 122 if(!vEndNode) return; 123 vEndOffs = vEndNode.length; 124 } 125 126 var vResult; 127 if(vCurrNode == vEndNode) { 128 vResult = vCurrNode.substringData(vStartOffs, vEndOffs - vStartOffs); 129 } else { 130 vResult = vCurrNode.substringData(vStartOffs, vCurrNode.length - vStartOffs); 131 vCurrNode = vCurrNode.nextSibling; 132 while(vCurr != vEndNode) { 133 vResult += vCurrNode.data; 134 vCurrNode = vCurrNode.nextSibling; 128 129 var vStopNode = vEndNode; 130 if(vEndNode.nodeType==1) vStopNode = vEndNode.childNodes.item(vRange.endOffset); 131 132 while(vCurrNode && vCurrNode != vStopNode) { 133 if(vCurrNode.nodeType==3) { 134 vResult += vCurrNode.data; 135 } else { 136 switch(vCurrNode.localName) { 137 case "br" : 138 case "div" : 139 case "p" : 140 vResult += ut.isWin ? "\r\n" : "\n"; 141 } 142 } 143 vCurrNode = vTw.nextNode(); 135 144 } 136 vResult += vEndNode.data.substringData(0, vEndOffs); 145 if(vCurrNode == vEndNode) { 146 if(vEndNode.nodeType==3) vResult += vEndNode.substringData(0, vRange.endOffset); 147 } 137 148 } 138 149
Note: See TracChangeset
for help on using the changeset viewer.