JavaScript"

This website contains links to software which is either no longer maintained or will be supported only until the end of 2019 (CKFinder 2). For the latest documentation about current CKSource projects, including software like CKEditor 4/CKEditor 5, CKFinder 3, Cloud Services, Letters, Accessibility Checker, please visit the new documentation website.

If you look for an information about very old versions of CKEditor, FCKeditor and CKFinder check also the CKEditor forum, which was closed in 2015. If not, please head to StackOverflow for support.

Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
== Frequently Asked Questions : JavaScript ==
+
== Frequently Asked Questions : JavaScript ==
  
* [[#tabindex|How do I apply a tabindex on the FCKeditor?]]
+
*[[#changeContent|How do I dynamically change the content in the editor with JavaScript?]]  
* [[#changeContent|How do I dynamically change the content in the editor with JavaScript?]]
+
*[[#javascriptParent|How do I call a javascript function on the page containing the editor from a plugin?]]  
* [[#sethtmlnotworking|.SetHTML doesn't work! Why not?]]
+
*[[FCKeditor 2.x/Developers Guide/FAQ/JavaScirpt/OnkeyEvent|How do I capture an onkey event within FCKeditor?]]
* [[#javascriptParent|How do I call a javascript function on the page containing the editor from a plugin?]]
 
* [[FCKeditor 2.x/Developers Guide/FAQ/JavaScirpt/OnkeyEvent|How do I capture an onkey event within FCKeditor?]]
 
  
=== <span id="tabindex">How do I apply a tabindex on the FCKeditor?</span> ===
+
=== <span id="changeContent">How do I dynamically change the content in the editor with JavaScript?</span> ===
  
By adding some Javascript:
+
Just use the FCKeditor JavaScript API:  
 
 
On the field just before the FCKEditor: &lt;input ... onKeyDown="focusIframeOnTab(this, "idOfYourFckEditorIframe", event);if(!document.all) return false;"&gt;
 
 
 
Use this function:
 
<pre>function focusIframeOnTab(caller, tabTargetId, callEvent)
 
{
 
// If keypress TAB and not SHIFT+TAB
 
if(callEvent.keyCode == 9 &amp;&amp;&nbsp;!callEvent.shiftKey)
 
document.getElementById(tabTargetId).contentWindow.focus();
 
}
 
</pre>
 
Remember that the id of the iframe should look like "identifier___Frame".
 
 
 
(Please feel free to write to fredrik@demomusic.dot.nu for suggestions on improving this function. Verified to work in Firefox 1.5 and IE 6 on WinXP)
 
 
 
=== <span id="changeContent">How do I dynamically change the content in the editor with JavaScript?</span> ===
 
 
 
Just use the FCKeditor JavaScript API:
 
 
<pre>function getEditorValue( instanceName )
 
<pre>function getEditorValue( instanceName )
 
{
 
{
Line 46: Line 26:
 
oEditor.SetHTML( text )&nbsp;;
 
oEditor.SetHTML( text )&nbsp;;
 
}
 
}
</pre>  
+
</pre>
=== <span id="sethtmlnotworking">.SetHTML doesn't work! Why not?</span> ===
+
=== <span id="javascriptParent">How do I call a javascript function on the page containing the editor from a plugin?</span> ===
 
 
One possibility is that the argument passed to the .SetHTML function is of the javascript type 'object'. Then the .SetHTML function may not work. If necessary, you can convert an object to a string by calling .toString() on it. So:
 
<pre>oEditor.SetHTML( yourObject.toString());
 
</pre>
 
To find out the type of a given object, just call the typeof() function on it. So:
 
<pre>typeof(yourObject);
 
</pre>
 
You can find more samples on how to use the editor API in the "_samples/html/sample08.html" file.
 
 
 
=== <span id="javascriptParent">How do I call a javascript function on the page containing the editor from a plugin?</span> ===
 
  
If you want to call a function contained in the page that instantiates the FCKeditor, you will need to add "parent." to the function name in the plugin.js.
+
If you want to call a function contained in the page that instantiates the FCKeditor, you will need to add "parent." to the function name in the plugin.js.  
  
Let's say that in fun.html I have a function named "SetSelected". If I were writing a plugin for use on the fun.html page, and I wanted it to call the&nbsp;!SetSelected() function from plugin.js, I would simply have to add parent to it.
+
Let's say that in fun.html I have a function named "SetSelected". If I were writing a plugin for use on the fun.html page, and I wanted it to call the&nbsp;!SetSelected() function from plugin.js, I would simply have to add parent to it.  
  
 
E.g. '''parent'''.''SetSelected();'' Sometimes you may have nested the editor another level; just add another parent like: ''parent.parent.SetSelected();''
 
E.g. '''parent'''.''SetSelected();'' Sometimes you may have nested the editor another level; just add another parent like: ''parent.parent.SetSelected();''

Revision as of 13:27, 29 May 2008

Frequently Asked Questions : JavaScript

How do I dynamically change the content in the editor with JavaScript?

Just use the FCKeditor JavaScript API:

function getEditorValue( instanceName )
{
// Get the editor instance that we want to interact with.
var oEditor = FCKeditorAPI.GetInstance( instanceName ) ;

// Get the editor contents as XHTML.
return oEditor.GetXHTML( true ) ; // "true" means you want it formatted.
}

function setEditorValue( instanceName, text )
{
// Get the editor instance that we want to interact with.
var oEditor = FCKeditorAPI.GetInstance( instanceName ) ;

// Set the editor contents.
oEditor.SetHTML( text ) ;
}

How do I call a javascript function on the page containing the editor from a plugin?

If you want to call a function contained in the page that instantiates the FCKeditor, you will need to add "parent." to the function name in the plugin.js.

Let's say that in fun.html I have a function named "SetSelected". If I were writing a plugin for use on the fun.html page, and I wanted it to call the !SetSelected() function from plugin.js, I would simply have to add parent to it.

E.g. parent.SetSelected(); Sometimes you may have nested the editor another level; just add another parent like: parent.parent.SetSelected();