[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/fckeditor/fckeditor/editor/_source/classes/ -> fckiecleanup.js (source)

   1  /*

   2   * FCKeditor - The text editor for Internet - http://www.fckeditor.net

   3   * Copyright (C) 2003-2009 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   * FCKIECleanup Class: a generic class used as a tool to remove IE leaks.

  22   */
  23  
  24  var    FCKIECleanup = function( attachWindow )
  25  {
  26      // If the attachWindow already have a cleanup object, just use that one.

  27      if ( attachWindow._FCKCleanupObj )
  28          this.Items = attachWindow._FCKCleanupObj.Items ;
  29      else
  30      {
  31          this.Items = new Array() ;
  32  
  33          attachWindow._FCKCleanupObj = this ;
  34          FCKTools.AddEventListenerEx( attachWindow, 'unload', FCKIECleanup_Cleanup ) ;
  35  //        attachWindow.attachEvent( 'onunload', FCKIECleanup_Cleanup ) ;

  36      }
  37  }
  38  
  39  FCKIECleanup.prototype.AddItem = function( dirtyItem, cleanupFunction )
  40  {
  41      this.Items.push( [ dirtyItem, cleanupFunction ] ) ;
  42  }
  43  
  44  function FCKIECleanup_Cleanup()
  45  {
  46      if ( !this._FCKCleanupObj || ( FCKConfig.MsWebBrowserControlCompat && !window.FCKUnloadFlag ) )
  47          return ;
  48  
  49      var aItems = this._FCKCleanupObj.Items ;
  50  
  51      while ( aItems.length > 0 )
  52      {
  53  
  54          // It is important to remove from the end to the beginning (pop()),

  55          // because of the order things get created in the editor. In the code,

  56          // elements in deeper position in the DOM are placed at the end of the

  57          // cleanup function, so we must cleanup then first, otherwise IE could

  58          // throw some crazy memory errors (IE bug).

  59          var oItem = aItems.pop() ;
  60          if ( oItem )
  61              oItem[1].call( oItem[0] ) ;
  62      }
  63  
  64      this._FCKCleanupObj = null ;
  65  
  66      if ( CollectGarbage )
  67          CollectGarbage() ;
  68  }


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7