Rev 1075 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 Frederico Caldeira Knabben** Licensed under the terms of the GNU Lesser General Public License:* http://www.opensource.org/licenses/lgpl-license.php** For further information visit:* http://www.fckeditor.net/** "Support Open Source software. What about a donation today?"** File Name: fckselection_ie.js* Active selection functions. (IE specific implementation)** File Authors:* Frederico Caldeira Knabben (fredck@fckeditor.net)*/// Get the selection type.FCKSelection.GetType = function(){return FCK.EditorDocument.selection.type ;}// Retrieves the selected element (if any), just in the case that a single// element (object like and image or a table) is selected.FCKSelection.GetSelectedElement = function(){if ( this.GetType() == 'Control' ){var oRange = FCK.EditorDocument.selection.createRange() ;if ( oRange && oRange.item )return FCK.EditorDocument.selection.createRange().item(0) ;}}FCKSelection.GetParentElement = function(){switch ( this.GetType() ){case 'Control' :return FCKSelection.GetSelectedElement().parentElement ;case 'None' :return ;default :return FCK.EditorDocument.selection.createRange().parentElement() ;}}FCKSelection.SelectNode = function( node ){FCK.Focus() ;FCK.EditorDocument.selection.empty() ;try{// Try to select the node as a control.var oRange = FCK.EditorDocument.body.createControlRange() ;oRange.addElement( node ) ;}catch(e){// If failed, select it as a text range.var oRange = FCK.EditorDocument.selection.createRange() ;oRange.moveToElementText( node ) ;}oRange.select() ;}FCKSelection.Collapse = function( toStart ){FCK.Focus() ;if ( this.GetType() == 'Text' ){var oRange = FCK.EditorDocument.selection.createRange() ;oRange.collapse( toStart == null || toStart === true ) ;oRange.select() ;}}// The "nodeTagName" parameter must be Upper Case.FCKSelection.HasAncestorNode = function( nodeTagName ){var oContainer ;if ( FCK.EditorDocument.selection.type == "Control" ){oContainer = this.GetSelectedElement() ;}else{var oRange = FCK.EditorDocument.selection.createRange() ;oContainer = oRange.parentElement() ;}while ( oContainer ){if ( oContainer.tagName == nodeTagName ) return true ;oContainer = oContainer.parentNode ;}return false ;}// The "nodeTagName" parameter must be UPPER CASE.FCKSelection.MoveToAncestorNode = function( nodeTagName ){var oNode ;if ( FCK.EditorDocument.selection.type == "Control" ){var oRange = FCK.EditorDocument.selection.createRange() ;for ( i = 0 ; i < oRange.length ; i++ ){if (oRange(i).parentNode){oNode = oRange(i).parentNode ;break ;}}}else{var oRange = FCK.EditorDocument.selection.createRange() ;oNode = oRange.parentElement() ;}while ( oNode && oNode.nodeName != nodeTagName )oNode = oNode.parentNode ;return oNode ;}FCKSelection.Delete = function(){// Gets the actual selection.var oSel = FCK.EditorDocument.selection ;// Deletes the actual selection contents.if ( oSel.type.toLowerCase() != "none" ){oSel.clear() ;}return oSel ;}