fckselection_gecko.js
资源名称:Myblog.rar [点击查看]
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:3k
源码类别:
Jsp/Servlet
开发平台:
Java
- /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 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/
- *
- * File Name: fckselection_gecko.js
- * Active selection functions. (Gecko specific implementation)
- *
- * File Authors:
- * Frederico Caldeira Knabben (fredck@fckeditor.net)
- */
- // Get the selection type (like document.select.type in IE).
- FCKSelection.GetType = function()
- {
- // if ( ! this._Type )
- // {
- // By default set the type to "Text".
- this._Type = 'Text' ;
- // Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
- var oSel = FCK.EditorWindow.getSelection() ;
- if ( oSel && oSel.rangeCount == 1 )
- {
- var oRange = oSel.getRangeAt(0) ;
- if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 )
- this._Type = 'Control' ;
- }
- // }
- return this._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 oSel = FCK.EditorWindow.getSelection() ;
- return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ;
- }
- }
- FCKSelection.GetParentElement = function()
- {
- if ( this.GetType() == 'Control' )
- return FCKSelection.GetSelectedElement().parentElement ;
- else
- {
- var oSel = FCK.EditorWindow.getSelection() ;
- if ( oSel )
- {
- var oNode = oSel.anchorNode ;
- while ( oNode && oNode.nodeType != 1 )
- oNode = oNode.parentNode ;
- return oNode ;
- }
- }
- }
- FCKSelection.SelectNode = function( element )
- {
- FCK.Focus() ;
- var oRange = FCK.EditorDocument.createRange() ;
- oRange.selectNode( element ) ;
- var oSel = FCK.EditorWindow.getSelection() ;
- oSel.removeAllRanges() ;
- oSel.addRange( oRange ) ;
- }
- FCKSelection.Collapse = function( toStart )
- {
- var oSel = FCK.EditorWindow.getSelection() ;
- if ( toStart == null || toStart === true )
- oSel.collapseToStart() ;
- else
- oSel.collapseToEnd() ;
- }
- // The "nodeTagName" parameter must be Upper Case.
- FCKSelection.HasAncestorNode = function( nodeTagName )
- {
- var oContainer = this.GetSelectedElement() ;
- if ( ! oContainer && FCK.EditorWindow )
- {
- try { oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; }
- catch(e){}
- }
- 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 ;
- var oContainer = this.GetSelectedElement() ;
- if ( ! oContainer )
- oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ;
- while ( oContainer )
- {
- if ( oContainer.tagName == nodeTagName ) return oContainer ;
- oContainer = oContainer.parentNode ;
- }
- }
- FCKSelection.Delete = function()
- {
- // Gets the actual selection.
- var oSel = FCK.EditorWindow.getSelection() ;
- // Deletes the actual selection contents.
- for ( var i = 0 ; i < oSel.rangeCount ; i++ )
- {
- oSel.getRangeAt(i).deleteContents() ;
- }
- return oSel ;
- }