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

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: fcktools.js
  12.  *  Utility functions.
  13.  * 
  14.  * File Authors:
  15.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  16.  */
  17. var FCKTools = new Object() ;
  18. //**
  19. // FCKTools.GetLinkedFieldValue: Gets the value of the hidden INPUT element
  20. // that is associated to the editor. This element has its ID set to the 
  21. // editor's instance name so the user reffers to the instance name when getting
  22. // the posted data.
  23. FCKTools.GetLinkedFieldValue = function()
  24. {
  25. return FCK.LinkedField.value ;
  26. }
  27. //**
  28. // FCKTools.SetLinkedFieldValue: Sets the value of the hidden INPUT element
  29. // that is associated to the editor. This element has its ID set to the 
  30. // editor's instance name so the user reffers to the instance name when getting
  31. // the posted data.
  32. FCKTools.SetLinkedFieldValue = function( value )
  33. {
  34. if ( FCKConfig.FormatOutput )
  35. FCK.LinkedField.value = FCKCodeFormatter.Format( value ) ;
  36. else
  37. FCK.LinkedField.value = value ;
  38. }
  39. //**
  40. // FCKTools.AttachToLinkedFieldFormSubmit: attaches a function call to the 
  41. // submit event of the linked field form. This function us generally used to
  42. // update the linked field value before submitting the form.
  43. FCKTools.AttachToLinkedFieldFormSubmit = function( functionPointer )
  44. {
  45. // Gets the linked field form
  46. var oForm = FCK.LinkedField.form ;
  47. // Return now if no form is available
  48. if (!oForm) return ;
  49. // Attaches the functionPointer call to the onsubmit event
  50. if ( FCKBrowserInfo.IsIE )
  51. oForm.attachEvent( "onsubmit", functionPointer ) ;
  52. else
  53. oForm.addEventListener( 'submit', functionPointer, true ) ;
  54. //**
  55. // Attaches the functionPointer call to the submit method 
  56. // This is done because IE doesn't fire onsubmit when the submit method is called
  57. // BEGIN --
  58. // Creates a Array in the form object that will hold all Attached function call
  59. // (in the case there are more than one editor in the same page)
  60. if (! oForm.updateFCKeditor) oForm.updateFCKeditor = new Array() ;
  61. // Adds the function pointer to the array of functions to call when "submit" is called
  62. oForm.updateFCKeditor[oForm.updateFCKeditor.length] = functionPointer ;
  63. // Switches the original submit method with a new one that first call all functions
  64. // on the above array and the call the original submit
  65. // IE sees it oForm.submit function as an 'object'.
  66. if (! oForm.originalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) )
  67. {
  68. // Creates a copy of the original submit
  69. oForm.originalSubmit = oForm.submit ;
  70. // Creates our replacement for the submit
  71. oForm.submit = FCKTools_SubmitReplacer ;
  72. }
  73. // END --
  74. }
  75. function FCKTools_SubmitReplacer()
  76. {
  77. if (this.updateFCKeditor)
  78. {
  79. // Calls all functions in the functions array
  80. for (var i = 0 ; i < this.updateFCKeditor.length ; i++)
  81. this.updateFCKeditor[i]() ;
  82. }
  83. // Calls the original "submit"
  84. this.originalSubmit() ;
  85. }
  86. //**
  87. // FCKTools.AddSelectOption: Adds a option to a SELECT element.
  88. FCKTools.AddSelectOption = function( targetDocument, selectElement, optionText, optionValue )
  89. {
  90. var oOption = targetDocument.createElement("OPTION") ;
  91. oOption.text = optionText ;
  92. oOption.value = optionValue ;
  93. selectElement.options.add(oOption) ;
  94. return oOption ;
  95. }
  96. FCKTools.RemoveAllSelectOptions = function( selectElement )
  97. {
  98. for ( var i = selectElement.options.length - 1 ; i >= 0 ; i-- )
  99. {
  100. selectElement.options.remove(i) ;
  101. }
  102. }
  103. FCKTools.SelectNoCase = function( selectElement, value, defaultValue )
  104. {
  105. var sNoCaseValue = value.toString().toLowerCase() ;
  106. for ( var i = 0 ; i < selectElement.options.length ; i++ )
  107. {
  108. if ( sNoCaseValue == selectElement.options[i].value.toLowerCase() )
  109. {
  110. selectElement.selectedIndex = i ;
  111. return ;
  112. }
  113. }
  114. if ( defaultValue != null ) FCKTools.SelectNoCase( selectElement, defaultValue ) ;
  115. }
  116. FCKTools.HTMLEncode = function( text )
  117. {
  118. if ( !text )
  119. return '' ;
  120. text = text.replace( /&/g, "&amp;" ) ;
  121. text = text.replace( /"/g, "&quot;" ) ;
  122. text = text.replace( /</g, "&lt;" ) ;
  123. text = text.replace( />/g, "&gt;" ) ;
  124. text = text.replace( /'/g, "&#39;" ) ;
  125. return text ;
  126. }
  127. //**
  128. // FCKTools.GetResultingArray: Gets a array from a string (where the elements 
  129. // are separated by a character), a fuction (that returns a array) or a array.
  130. FCKTools.GetResultingArray = function( arraySource, separator )
  131. {
  132. switch ( typeof( arraySource ) )
  133. {
  134. case "string" :
  135. return arraySource.split( separator ) ;
  136. case "function" :
  137. return separator() ;
  138. default :
  139. if ( isArray( arraySource ) ) return arraySource ;
  140. else return new Array() ;
  141. }
  142. }
  143. FCKTools.GetElementPosition = function( el )
  144. {
  145. // Initializes the Coordinates object that will be returned by the function.
  146. var c = { X:0, Y:0 } ;
  147. // Loop throw the offset chain.
  148. while ( el )
  149. {
  150. c.X += el.offsetLeft ;
  151. c.Y += el.offsetTop ;
  152. el = el.offsetParent ;
  153. }
  154. // Return the Coordinates object
  155. return c ;
  156. }
  157. FCKTools.GetElementAscensor = function( element, ascensorTagName )
  158. {
  159. var e = element.parentNode ;
  160. while ( e )
  161. {
  162. if ( e.nodeName == ascensorTagName )
  163. return e ;
  164. e = e.parentNode ;
  165. }
  166. }
  167. FCKTools.Pause = function( miliseconds )
  168. {
  169. var oStart = new Date() ;
  170. while (true)
  171. var oNow = new Date() ;
  172. if ( miliseconds < oNow - oStart ) 
  173. return ;
  174. }
  175. }
  176. FCKTools.ConvertStyleSizeToHtml = function( size )
  177. {
  178. return size.endsWith( '%' ) ? size : parseInt( size ) ;
  179. }
  180. FCKTools.ConvertHtmlSizeToStyle = function( size )
  181. {
  182. return size.endsWith( '%' ) ? size : ( size + 'px' ) ;
  183. }