parent
34ad2680f1
commit
08e84bcb04
@ -1,179 +1,179 @@ |
||||
/* |
||||
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
||||
* Copyright (C) 2003-2009 Frederico Caldeira Knabben |
||||
* |
||||
* == BEGIN LICENSE == |
||||
* |
||||
* Licensed under the terms of any of the following licenses at your |
||||
* choice: |
||||
* |
||||
* - GNU General Public License Version 2 or later (the "GPL") |
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
* |
||||
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
||||
* http://www.gnu.org/licenses/lgpl.html
|
||||
* |
||||
* - Mozilla Public License Version 1.1 or later (the "MPL") |
||||
* http://www.mozilla.org/MPL/MPL-1.1.html
|
||||
* |
||||
* == END LICENSE == |
||||
* |
||||
* Create the FCKeditorAPI object that is available as a global object in |
||||
* the page where the editor is placed in. |
||||
*/ |
||||
|
||||
var FCKeditorAPI ; |
||||
|
||||
function InitializeAPI() |
||||
{ |
||||
var oParentWindow = window.parent ; |
||||
|
||||
if ( !( FCKeditorAPI = oParentWindow.FCKeditorAPI ) ) |
||||
{ |
||||
// Make the FCKeditorAPI object available in the parent window. Use
|
||||
// eval so this core runs in the parent's scope and so it will still be
|
||||
// available if the editor instance is removed ("Can't execute code
|
||||
// from a freed script" error).
|
||||
|
||||
// Note: we check the existence of oEditor.GetParentForm because some external
|
||||
// code (like JSON) can extend the Object prototype and we get then extra oEditor
|
||||
// objects that aren't really FCKeditor instances.
|
||||
var sScript = |
||||
/* |
||||
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
||||
* Copyright (C) 2003-2009 Frederico Caldeira Knabben |
||||
* |
||||
* == BEGIN LICENSE == |
||||
* |
||||
* Licensed under the terms of any of the following licenses at your |
||||
* choice: |
||||
* |
||||
* - GNU General Public License Version 2 or later (the "GPL") |
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
* |
||||
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
||||
* http://www.gnu.org/licenses/lgpl.html
|
||||
* |
||||
* - Mozilla Public License Version 1.1 or later (the "MPL") |
||||
* http://www.mozilla.org/MPL/MPL-1.1.html
|
||||
* |
||||
* == END LICENSE == |
||||
* |
||||
* Create the FCKeditorAPI object that is available as a global object in |
||||
* the page where the editor is placed in. |
||||
*/ |
||||
|
||||
var FCKeditorAPI ; |
||||
|
||||
function InitializeAPI() |
||||
{ |
||||
var oParentWindow = window.parent ; |
||||
|
||||
if ( !( FCKeditorAPI = oParentWindow.FCKeditorAPI ) ) |
||||
{ |
||||
// Make the FCKeditorAPI object available in the parent window. Use
|
||||
// eval so this core runs in the parent's scope and so it will still be
|
||||
// available if the editor instance is removed ("Can't execute code
|
||||
// from a freed script" error).
|
||||
|
||||
// Note: we check the existence of oEditor.GetParentForm because some external
|
||||
// code (like JSON) can extend the Object prototype and we get then extra oEditor
|
||||
// objects that aren't really FCKeditor instances.
|
||||
var sScript = |
||||
'window.FCKeditorAPI = {' + |
||||
'Version : "2.6.4.1",' + |
||||
'VersionBuild : "23195",' + |
||||
'Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},' + |
||||
|
||||
'GetInstance : function( name )' + |
||||
'{' + |
||||
'return this.Instances[ name ];' + |
||||
'},' + |
||||
|
||||
'_FormSubmit : function()' + |
||||
'{' + |
||||
'for ( var name in FCKeditorAPI.Instances )' + |
||||
'{' + |
||||
'var oEditor = FCKeditorAPI.Instances[ name ] ;' + |
||||
'if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )' + |
||||
'oEditor.UpdateLinkedField() ;' + |
||||
'}' + |
||||
'this._FCKOriginalSubmit() ;' + |
||||
'},' + |
||||
|
||||
'_FunctionQueue : window.FCKeditorAPI && window.FCKeditorAPI._FunctionQueue || {' + |
||||
'Functions : new Array(),' + |
||||
'IsRunning : false,' + |
||||
|
||||
'Add : function( f )' + |
||||
'{' + |
||||
'this.Functions.push( f );' + |
||||
'if ( !this.IsRunning )' + |
||||
'this.StartNext();' + |
||||
'},' + |
||||
|
||||
'StartNext : function()' + |
||||
'{' + |
||||
'var aQueue = this.Functions ;' + |
||||
'if ( aQueue.length > 0 )' + |
||||
'{' + |
||||
'this.IsRunning = true;' + |
||||
'aQueue[0].call();' + |
||||
'}' + |
||||
'else ' + |
||||
'this.IsRunning = false;' + |
||||
'},' + |
||||
|
||||
'Remove : function( f )' + |
||||
'{' + |
||||
'var aQueue = this.Functions;' + |
||||
'var i = 0, fFunc;' + |
||||
'while( (fFunc = aQueue[ i ]) )' + |
||||
'{' + |
||||
'if ( fFunc == f )' + |
||||
'aQueue.splice( i,1 );' + |
||||
'i++ ;' + |
||||
'}' + |
||||
'this.StartNext();' + |
||||
'}' + |
||||
'}' + |
||||
'}' ; |
||||
|
||||
// In IE, the "eval" function is not always available (it works with
|
||||
// the JavaScript samples, but not with the ASP ones, for example).
|
||||
// So, let's use the execScript instead.
|
||||
if ( oParentWindow.execScript ) |
||||
oParentWindow.execScript( sScript, 'JavaScript' ) ; |
||||
else |
||||
{ |
||||
if ( FCKBrowserInfo.IsGecko10 ) |
||||
{ |
||||
// FF 1.0.4 gives an error with the request bellow. The
|
||||
// following seams to work well.
|
||||
eval.call( oParentWindow, sScript ) ; |
||||
} |
||||
else if( FCKBrowserInfo.IsAIR ) |
||||
{ |
||||
FCKAdobeAIR.FCKeditorAPI_Evaluate( oParentWindow, sScript ) ; |
||||
} |
||||
else if ( FCKBrowserInfo.IsSafari ) |
||||
{ |
||||
// oParentWindow.eval in Safari executes in the calling window
|
||||
// environment, instead of the parent one. The following should
|
||||
// make it work.
|
||||
var oParentDocument = oParentWindow.document ; |
||||
var eScript = oParentDocument.createElement('script') ; |
||||
eScript.appendChild( oParentDocument.createTextNode( sScript ) ) ; |
||||
oParentDocument.documentElement.appendChild( eScript ) ; |
||||
} |
||||
else |
||||
oParentWindow.eval( sScript ) ; |
||||
} |
||||
|
||||
FCKeditorAPI = oParentWindow.FCKeditorAPI ; |
||||
|
||||
// The __Instances properly has been changed to the public Instances,
|
||||
// but we should still have the "deprecated" version of it.
|
||||
FCKeditorAPI.__Instances = FCKeditorAPI.Instances ; |
||||
} |
||||
|
||||
// Add the current instance to the FCKeditorAPI's instances collection.
|
||||
FCKeditorAPI.Instances[ FCK.Name ] = FCK ; |
||||
} |
||||
|
||||
// Attach to the form onsubmit event and to the form.submit().
|
||||
function _AttachFormSubmitToAPI() |
||||
{ |
||||
// Get the linked field form.
|
||||
var oForm = FCK.GetParentForm() ; |
||||
|
||||
if ( oForm ) |
||||
{ |
||||
// Attach to the onsubmit event.
|
||||
FCKTools.AddEventListener( oForm, 'submit', FCK.UpdateLinkedField ) ; |
||||
|
||||
// IE sees oForm.submit function as an 'object'.
|
||||
if ( !oForm._FCKOriginalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) ) |
||||
{ |
||||
// Save the original submit.
|
||||
oForm._FCKOriginalSubmit = oForm.submit ; |
||||
|
||||
// Create our replacement for the submit.
|
||||
oForm.submit = FCKeditorAPI._FormSubmit ; |
||||
} |
||||
} |
||||
} |
||||
|
||||
function FCKeditorAPI_Cleanup() |
||||
{ |
||||
if ( window.FCKConfig && FCKConfig.MsWebBrowserControlCompat |
||||
&& !window.FCKUnloadFlag ) |
||||
return ; |
||||
delete FCKeditorAPI.Instances[ FCK.Name ] ; |
||||
} |
||||
function FCKeditorAPI_ConfirmCleanup() |
||||
{ |
||||
if ( window.FCKConfig && FCKConfig.MsWebBrowserControlCompat ) |
||||
window.FCKUnloadFlag = true ; |
||||
} |
||||
FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ; |
||||
FCKTools.AddEventListener( window, 'beforeunload', FCKeditorAPI_ConfirmCleanup) ; |
||||
'Version : "2.6.4.1",' + |
||||
'VersionBuild : "23405",' + |
||||
'Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},' + |
||||
|
||||
'GetInstance : function( name )' + |
||||
'{' + |
||||
'return this.Instances[ name ];' + |
||||
'},' + |
||||
|
||||
'_FormSubmit : function()' + |
||||
'{' + |
||||
'for ( var name in FCKeditorAPI.Instances )' + |
||||
'{' + |
||||
'var oEditor = FCKeditorAPI.Instances[ name ] ;' + |
||||
'if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )' + |
||||
'oEditor.UpdateLinkedField() ;' + |
||||
'}' + |
||||
'this._FCKOriginalSubmit() ;' + |
||||
'},' + |
||||
|
||||
'_FunctionQueue : window.FCKeditorAPI && window.FCKeditorAPI._FunctionQueue || {' + |
||||
'Functions : new Array(),' + |
||||
'IsRunning : false,' + |
||||
|
||||
'Add : function( f )' + |
||||
'{' + |
||||
'this.Functions.push( f );' + |
||||
'if ( !this.IsRunning )' + |
||||
'this.StartNext();' + |
||||
'},' + |
||||
|
||||
'StartNext : function()' + |
||||
'{' + |
||||
'var aQueue = this.Functions ;' + |
||||
'if ( aQueue.length > 0 )' + |
||||
'{' + |
||||
'this.IsRunning = true;' + |
||||
'aQueue[0].call();' + |
||||
'}' + |
||||
'else ' + |
||||
'this.IsRunning = false;' + |
||||
'},' + |
||||
|
||||
'Remove : function( f )' + |
||||
'{' + |
||||
'var aQueue = this.Functions;' + |
||||
'var i = 0, fFunc;' + |
||||
'while( (fFunc = aQueue[ i ]) )' + |
||||
'{' + |
||||
'if ( fFunc == f )' + |
||||
'aQueue.splice( i,1 );' + |
||||
'i++ ;' + |
||||
'}' + |
||||
'this.StartNext();' + |
||||
'}' + |
||||
'}' + |
||||
'}' ; |
||||
|
||||
// In IE, the "eval" function is not always available (it works with
|
||||
// the JavaScript samples, but not with the ASP ones, for example).
|
||||
// So, let's use the execScript instead.
|
||||
if ( oParentWindow.execScript ) |
||||
oParentWindow.execScript( sScript, 'JavaScript' ) ; |
||||
else |
||||
{ |
||||
if ( FCKBrowserInfo.IsGecko10 ) |
||||
{ |
||||
// FF 1.0.4 gives an error with the request bellow. The
|
||||
// following seams to work well.
|
||||
eval.call( oParentWindow, sScript ) ; |
||||
} |
||||
else if( FCKBrowserInfo.IsAIR ) |
||||
{ |
||||
FCKAdobeAIR.FCKeditorAPI_Evaluate( oParentWindow, sScript ) ; |
||||
} |
||||
else if ( FCKBrowserInfo.IsSafari ) |
||||
{ |
||||
// oParentWindow.eval in Safari executes in the calling window
|
||||
// environment, instead of the parent one. The following should
|
||||
// make it work.
|
||||
var oParentDocument = oParentWindow.document ; |
||||
var eScript = oParentDocument.createElement('script') ; |
||||
eScript.appendChild( oParentDocument.createTextNode( sScript ) ) ; |
||||
oParentDocument.documentElement.appendChild( eScript ) ; |
||||
} |
||||
else |
||||
oParentWindow.eval( sScript ) ; |
||||
} |
||||
|
||||
FCKeditorAPI = oParentWindow.FCKeditorAPI ; |
||||
|
||||
// The __Instances properly has been changed to the public Instances,
|
||||
// but we should still have the "deprecated" version of it.
|
||||
FCKeditorAPI.__Instances = FCKeditorAPI.Instances ; |
||||
} |
||||
|
||||
// Add the current instance to the FCKeditorAPI's instances collection.
|
||||
FCKeditorAPI.Instances[ FCK.Name ] = FCK ; |
||||
} |
||||
|
||||
// Attach to the form onsubmit event and to the form.submit().
|
||||
function _AttachFormSubmitToAPI() |
||||
{ |
||||
// Get the linked field form.
|
||||
var oForm = FCK.GetParentForm() ; |
||||
|
||||
if ( oForm ) |
||||
{ |
||||
// Attach to the onsubmit event.
|
||||
FCKTools.AddEventListener( oForm, 'submit', FCK.UpdateLinkedField ) ; |
||||
|
||||
// IE sees oForm.submit function as an 'object'.
|
||||
if ( !oForm._FCKOriginalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) ) |
||||
{ |
||||
// Save the original submit.
|
||||
oForm._FCKOriginalSubmit = oForm.submit ; |
||||
|
||||
// Create our replacement for the submit.
|
||||
oForm.submit = FCKeditorAPI._FormSubmit ; |
||||
} |
||||
} |
||||
} |
||||
|
||||
function FCKeditorAPI_Cleanup() |
||||
{ |
||||
if ( window.FCKConfig && FCKConfig.MsWebBrowserControlCompat |
||||
&& !window.FCKUnloadFlag ) |
||||
return ; |
||||
delete FCKeditorAPI.Instances[ FCK.Name ] ; |
||||
} |
||||
function FCKeditorAPI_ConfirmCleanup() |
||||
{ |
||||
if ( window.FCKConfig && FCKConfig.MsWebBrowserControlCompat ) |
||||
window.FCKUnloadFlag = true ; |
||||
} |
||||
FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ; |
||||
FCKTools.AddEventListener( window, 'beforeunload', FCKeditorAPI_ConfirmCleanup) ; |
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue