Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F392361
fckeditorapi.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
fckeditorapi.js
View Options
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 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 protype and we get then extra oEditor
// objects that aren't really FCKeditor instances.
var
sScript
=
'var FCKeditorAPI = {'
+
'Version : "2.4.2",'
+
'VersionBuild : "14978",'
+
'__Instances : new Object(),'
+
'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 : {'
+
'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
.
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
;
}
// 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
()
{
delete
FCKeditorAPI
.
__Instances
[
FCK
.
Name
]
;
}
FCKTools
.
AddEventListener
(
window
,
'unload'
,
FCKeditorAPI_Cleanup
)
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 22, 20:27 (2 d, 10 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23681
Default Alt Text
fckeditorapi.js (4 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment