[ Index ] |
|
Code source de vtiger CRM 5.0.2 |
1 /* 2 * FCKeditor - The text editor for internet 3 * Copyright (C) 2003-2005 Frederico Caldeira Knabben 4 * 5 * Licensed under the terms of the GNU Lesser General Public License: 6 * http://www.opensource.org/licenses/lgpl-license.php 7 * 8 * For further information visit: 9 * http://www.fckeditor.net/ 10 * 11 * "Support Open Source software. What about a donation today?" 12 * 13 * File Name: fckselection_gecko.js 14 * Active selection functions. (Gecko specific implementation) 15 * 16 * File Authors: 17 * Frederico Caldeira Knabben (fredck@fckeditor.net) 18 */ 19 20 // Get the selection type (like document.select.type in IE). 21 FCKSelection.GetType = function() 22 { 23 // if ( ! this._Type ) 24 // { 25 // By default set the type to "Text". 26 this._Type = 'Text' ; 27 28 // Check if the actual selection is a Control (IMG, TABLE, HR, etc...). 29 var oSel ; 30 try { oSel = FCK.EditorWindow.getSelection() ; } 31 catch (e) {} 32 33 if ( oSel && oSel.rangeCount == 1 ) 34 { 35 var oRange = oSel.getRangeAt(0) ; 36 if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 ) 37 this._Type = 'Control' ; 38 } 39 // } 40 return this._Type ; 41 } 42 43 // Retrieves the selected element (if any), just in the case that a single 44 // element (object like and image or a table) is selected. 45 FCKSelection.GetSelectedElement = function() 46 { 47 if ( this.GetType() == 'Control' ) 48 { 49 var oSel = FCK.EditorWindow.getSelection() ; 50 return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ; 51 } 52 } 53 54 FCKSelection.GetParentElement = function() 55 { 56 if ( this.GetType() == 'Control' ) 57 return FCKSelection.GetSelectedElement().parentNode ; 58 else 59 { 60 var oSel = FCK.EditorWindow.getSelection() ; 61 if ( oSel ) 62 { 63 var oNode = oSel.anchorNode ; 64 65 while ( oNode && oNode.nodeType != 1 ) 66 oNode = oNode.parentNode ; 67 68 return oNode ; 69 } 70 } 71 } 72 73 FCKSelection.SelectNode = function( element ) 74 { 75 FCK.Focus() ; 76 77 var oRange = FCK.EditorDocument.createRange() ; 78 oRange.selectNode( element ) ; 79 80 var oSel = FCK.EditorWindow.getSelection() ; 81 oSel.removeAllRanges() ; 82 oSel.addRange( oRange ) ; 83 } 84 85 FCKSelection.Collapse = function( toStart ) 86 { 87 var oSel = FCK.EditorWindow.getSelection() ; 88 89 if ( toStart == null || toStart === true ) 90 oSel.collapseToStart() ; 91 else 92 oSel.collapseToEnd() ; 93 } 94 95 // The "nodeTagName" parameter must be Upper Case. 96 FCKSelection.HasAncestorNode = function( nodeTagName ) 97 { 98 var oContainer = this.GetSelectedElement() ; 99 if ( ! oContainer && FCK.EditorWindow ) 100 { 101 try { oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; } 102 catch(e){} 103 } 104 105 while ( oContainer ) 106 { 107 if ( oContainer.nodeType == 1 && oContainer.tagName == nodeTagName ) return true ; 108 oContainer = oContainer.parentNode ; 109 } 110 111 return false ; 112 } 113 114 // The "nodeTagName" parameter must be Upper Case. 115 FCKSelection.MoveToAncestorNode = function( nodeTagName ) 116 { 117 var oNode ; 118 119 var oContainer = this.GetSelectedElement() ; 120 if ( ! oContainer ) 121 oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; 122 123 while ( oContainer ) 124 { 125 if ( oContainer.tagName == nodeTagName ) 126 return oContainer ; 127 oContainer = oContainer.parentNode ; 128 } 129 return null ; 130 } 131 132 FCKSelection.Delete = function() 133 { 134 // Gets the actual selection. 135 var oSel = FCK.EditorWindow.getSelection() ; 136 137 // Deletes the actual selection contents. 138 for ( var i = 0 ; i < oSel.rangeCount ; i++ ) 139 { 140 oSel.getRangeAt(i).deleteContents() ; 141 } 142 143 return oSel ; 144 } 145 146 // START iCM MODIFICATIONS 147 /* 148 // Move the cursor position (the selection point) to a specific offset within a specific node 149 // If no offset specified, the start of the node is assumed 150 FCKSelection.SetCursorPosition = function ( oNode, nOffset ) 151 { 152 if ( typeof nOffset == "undefined" ) nOffset = 0 ; 153 154 var oSel = FCK.EditorWindow.getSelection() ; 155 var oRange = FCK.EditorDocument.createRange() ; 156 157 oRange.setStart( oNode, nOffset ) ; 158 oRange.collapse( true ) ; 159 160 oSel.removeAllRanges() ; 161 oSel.addRange( oRange ); 162 163 if ( oNode.scrollIntoView ) 164 oNode.scrollIntoView( false ); 165 } 166 */ 167 // END iCM MODIFICATIONS 168
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 10:22:19 2007 | par Balluche grâce à PHPXref 0.7 |