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.

Frequently Asked Questions : JavaScript

How do I apply a tabindex on the FCKeditor?

By adding some Javascript:

On the field just before the FCKEditor: <input ... onKeyDown="focusIframeOnTab(this, "idOfYourFckEditorIframe", event);if(!document.all) return false;">

Use this function:

function focusIframeOnTab(caller, tabTargetId, callEvent)
{
// If keypress TAB and not SHIFT+TAB
if(callEvent.keyCode == 9 && !callEvent.shiftKey)
document.getElementById(tabTargetId).contentWindow.focus();
}

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)

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 ) ;
}

.SetHTML doesn't work! Why not?

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:

oEditor.SetHTML( yourObject.toString());

To find out the type of a given object, just call the typeof() function on it. So:

typeof(yourObject);

You can find more samples on how to use the editor API in the "_samples/html/sample08.html" file.

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();