[ Index ]
 

Code source de FCKeditor 2.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/editor/_source/ -> fckeditorapi.js (source)

   1  /*
   2   * FCKeditor - The text editor for Internet - http://www.fckeditor.net
   3   * Copyright (C) 2003-2007 Frederico Caldeira Knabben
   4   * 
   5   * == BEGIN LICENSE ==
   6   * 
   7   * Licensed under the terms of any of the following licenses at your
   8   * choice:
   9   * 
  10   *  - GNU General Public License Version 2 or later (the "GPL")
  11   *    http://www.gnu.org/licenses/gpl.html
  12   * 
  13   *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14   *    http://www.gnu.org/licenses/lgpl.html
  15   * 
  16   *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17   *    http://www.mozilla.org/MPL/MPL-1.1.html
  18   * 
  19   * == END LICENSE ==
  20   * 
  21   * File Name: fckeditorapi.js
  22   *     Create the FCKeditorAPI object that is available as a global object in
  23   *     the page where the editor is placed in.
  24   * 
  25   * File Authors:
  26   *         Frederico Caldeira Knabben (www.fckeditor.net)
  27   */
  28  
  29  var FCKeditorAPI ;
  30  
  31  function InitializeAPI()
  32  {
  33      var oParentWindow = window.parent ;
  34  
  35      if ( !( FCKeditorAPI = oParentWindow.FCKeditorAPI ) )
  36      {
  37          // Make the FCKeditorAPI object available in the parent window. Use 
  38          // eval so this core runs in the parent's scope and so it will still be 
  39          // available if the editor instance is removed ("Can't execute code
  40          // from a freed script" error).
  41          var sScript = 
  42              'var FCKeditorAPI = {' +
  43                  'Version : "2.4",' +
  44                  'VersionBuild : "1148",' +
  45                  '__Instances : new Object(),' +
  46                  
  47                  'GetInstance : function( name )' +
  48                  '{' +
  49                      'return this.__Instances[ name ];' +
  50                  '},' +
  51                  
  52                  '_FormSubmit : function()' +
  53                  '{' +
  54                      'for ( var name in FCKeditorAPI.__Instances )' +
  55                      '{' +
  56                          'var oEditor = FCKeditorAPI.__Instances[ name ] ;' +
  57                          'if ( oEditor.GetParentForm() == this )' +
  58                              'oEditor.UpdateLinkedField() ;' +
  59                      '}' +
  60                      'this._FCKOriginalSubmit() ;' +
  61                  '},' +
  62                  
  63                  '_FunctionQueue    : {' +
  64                      'Functions : new Array(),' +
  65                      'IsRunning : false,' +
  66                      
  67                      'Add : function( f )' +
  68                      '{' +
  69                          'this.Functions.push( f );' +
  70                          'if ( !this.IsRunning )' +
  71                              'this.StartNext();' +
  72                      '},' +
  73                      
  74                      'StartNext : function()' +
  75                      '{' +
  76                          'var aQueue = this.Functions ;' +
  77                          'if ( aQueue.length > 0 )' +
  78                          '{' +
  79                              'this.IsRunning = true;' +
  80                              'aQueue[0].call();' +
  81                          '}' +
  82                          'else ' +
  83                              'this.IsRunning = false;' +
  84                      '},' +
  85                      
  86                      'Remove : function( f )' +
  87                      '{' +
  88                          'var aQueue = this.Functions;' +
  89                          'var i = 0, fFunc;' +
  90                          'while( (fFunc = aQueue[ i ]) )' +
  91                          '{' +
  92                              'if ( fFunc == f )' +
  93                                  'aQueue.splice( i,1 );' +
  94                              'i++ ;' +
  95                          '}' +
  96                          'this.StartNext();' +
  97                      '}' +
  98                  '}' +
  99              '}' ;
 100          
 101          // In IE, the "eval" function is not always available (it works with
 102          // the JavaScript samples, but not with the ASP ones, for example).
 103          // So, let's use the execScript instead.
 104          if ( oParentWindow.execScript )
 105              oParentWindow.execScript( sScript, 'JavaScript' ) ;
 106          else
 107          {
 108              if ( FCKBrowserInfo.IsGecko10 )
 109              {
 110                  // FF 1.0.4 gives an error with the request bellow. The
 111                  // following seams to work well.
 112                  eval.call( oParentWindow, sScript ) ;
 113              }
 114              else if ( FCKBrowserInfo.IsSafari )
 115              {
 116                  // oParentWindow.eval in Safari executes in the calling window
 117                  // environment, instead of the parent one. The following should make it work.
 118                  var oParentDocument = oParentWindow.document ;
 119                  var eScript = oParentDocument.createElement('script') ;
 120                  eScript.appendChild( oParentDocument.createTextNode( sScript ) ) ;
 121                  oParentDocument.documentElement.appendChild( eScript ) ;
 122              }
 123              else
 124                  oParentWindow.eval( sScript ) ;
 125          }
 126          
 127          FCKeditorAPI = oParentWindow.FCKeditorAPI ;
 128      }
 129  
 130      // Add the current instance to the FCKeditorAPI's instances collection.
 131      FCKeditorAPI.__Instances[ FCK.Name ] = FCK ;
 132  }
 133  
 134  // Attach to the form onsubmit event and to the form.submit().
 135  function _AttachFormSubmitToAPI()
 136  {
 137      // Get the linked field form.
 138      var oForm = FCK.GetParentForm() ;
 139      
 140      if ( oForm )
 141      {
 142          // Attach to the onsubmit event.
 143          FCKTools.AddEventListener( oForm, 'submit', FCK.UpdateLinkedField ) ;
 144          
 145          // IE sees oForm.submit function as an 'object'.
 146          if ( !oForm._FCKOriginalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) )
 147          {
 148              // Save the original submit.
 149              oForm._FCKOriginalSubmit = oForm.submit ;
 150              
 151              // Create our replacement for the submit.
 152              oForm.submit = FCKeditorAPI._FormSubmit ;
 153          }
 154      }    
 155  }
 156  
 157  function FCKeditorAPI_Cleanup()
 158  {
 159      delete FCKeditorAPI.__Instances[ FCK.Name ] ;
 160  }
 161  FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ;    


Généré le : Sun Feb 25 15:28:05 2007 par Balluche grâce à PHPXref 0.7