fckselection_ie.js
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:3k
源码类别:

Jsp/Servlet

开发平台:

Java

  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.  * File Name: fckselection_ie.js
  12.  *  Active selection functions. (IE specific implementation)
  13.  * 
  14.  * File Authors:
  15.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  16.  */
  17. // Get the selection type.
  18. FCKSelection.GetType = function()
  19. {
  20. return FCK.EditorDocument.selection.type ;
  21. }
  22. // Retrieves the selected element (if any), just in the case that a single
  23. // element (object like and image or a table) is selected.
  24. FCKSelection.GetSelectedElement = function()
  25. {
  26. if ( this.GetType() == 'Control' )
  27. {
  28. var oRange = FCK.EditorDocument.selection.createRange() ;
  29. if ( oRange && oRange.item )
  30. return FCK.EditorDocument.selection.createRange().item(0) ;
  31. }
  32. }
  33. FCKSelection.GetParentElement = function()
  34. {
  35. if ( this.GetType() == 'Control' )
  36. return FCKSelection.GetSelectedElement().parentElement ;
  37. else
  38. return FCK.EditorDocument.selection.createRange().parentElement() ;
  39. }
  40. FCKSelection.SelectNode = function( node )
  41. {
  42. FCK.Focus() ;
  43. FCK.EditorDocument.selection.empty() ;
  44. var oRange = FCK.EditorDocument.selection.createRange() ;
  45. oRange.moveToElementText( node ) ;
  46. oRange.select() ;
  47. }
  48. FCKSelection.Collapse = function( toStart )
  49. {
  50. FCK.Focus() ;
  51. var oRange = FCK.EditorDocument.selection.createRange() ;
  52. oRange.collapse( toStart == null || toStart === true ) ;
  53. oRange.select() ;
  54. }
  55. // The "nodeTagName" parameter must be Upper Case.
  56. FCKSelection.HasAncestorNode = function( nodeTagName )
  57. {
  58. var oContainer ;
  59. if ( FCK.EditorDocument.selection.type == "Control" )
  60. {
  61. oContainer = this.GetSelectedElement() ;
  62. }
  63. else
  64. {
  65. var oRange  = FCK.EditorDocument.selection.createRange() ;
  66. oContainer = oRange.parentElement() ;
  67. }
  68. while ( oContainer )
  69. {
  70. if ( oContainer.tagName == nodeTagName ) return true ;
  71. oContainer = oContainer.parentNode ;
  72. }
  73. return false ;
  74. }
  75. // The "nodeTagName" parameter must be UPPER CASE.
  76. FCKSelection.MoveToAncestorNode = function( nodeTagName )
  77. {
  78. var oNode ;
  79. if ( FCK.EditorDocument.selection.type == "Control" )
  80. {
  81. var oRange = FCK.EditorDocument.selection.createRange() ;
  82. for ( i = 0 ; i < oRange.length ; i++ )
  83. {
  84. if (oRange(i).parentNode)
  85. {
  86. oNode = oRange(i).parentNode ;
  87. break ;
  88. }
  89. }
  90. }
  91. else
  92. {
  93. var oRange  = FCK.EditorDocument.selection.createRange() ;
  94. oNode = oRange.parentElement() ;
  95. }
  96. while ( oNode && oNode.nodeName != nodeTagName )
  97. oNode = oNode.parentNode ;
  98. return oNode ;
  99. }
  100. FCKSelection.Delete = function()
  101. {
  102. // Gets the actual selection.
  103. var oSel = FCK.EditorDocument.selection ;
  104. // Deletes the actual selection contents.
  105. if ( oSel.type.toLowerCase() != "none" )
  106. {
  107. oSel.clear() ;
  108. }
  109. return oSel ;
  110. }