FCKEDITOR 的高级功能和常见问题的解决方法

  它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。FCK的配置和使用都很简单,但是默认的配置不能满足所有的需求,所以我们需要了解一些FCK的高级功能。

  获取FCK的实例

  FCKeditorAPI是FCKeditor加载后注册的一个全局对象,利用它我们就可以完成对编辑器的各种操作。

  在当前页获得 FCK 编辑器实例:

  var Editor = FCKeditorAPI.GetInstance('InstanceName');

  从 FCK 编辑器的弹出窗口中获得 FCK 编辑器实例:

  var Editor = window.parent.InnerDialogLoaded().FCK;

  从框架页面的子框架中获得其它子框架的 FCK 编辑器实例:

  var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

  从页面弹出窗口中获得父窗口的 FCK 编辑器实例:

  var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');

  FCK获取焦点

  获取焦点是否在FCK中:

  oEditor.HasFocus

  FCK获取焦点:

  oEditor.Focus();//获取焦点

  获取和设置FCK的内容

  获得 FCK 编辑器的内容:

  oEditor.GetXHTML(formatted); // formatted 为:true|false,表示是否按HTML格式取出。

  设置 FCK 编辑器的内容:

  oEditor.SetHTML("content", false); // 第二个参数为:true|false,是否以所见即所得方式设置其内容。

  插入内容到 FCK 编辑器:

  oEditor.InsertHtml("html"); // "html"为HTML文本

  检查 FCK 编辑器内容是否发生变化:

  oEditor.IsDirty();

  

复制代码 代码如下:

  // 获取编辑器中HTML内容

  function getEditorHTMLContents(EditorName) {

  var oEditor = FCKeditorAPI.GetInstance(EditorName);

  return(oEditor.GetXHTML(true));

  }

  // 获取编辑器中文字内容

  function getEditorTextContents(EditorName) {

  var oEditor = FCKeditorAPI.GetInstance(EditorName);

  return(oEditor.EditorDocument.body.innerText);

  }

  // 设置编辑器中内容

  function SetEditorContents(EditorName, ContentStr) {

  var oEditor = FCKeditorAPI.GetInstance(EditorName) ;

  oEditor.SetHTML(ContentStr) ;

  }

  FCK的事件处理

  FCK定义有OnComplete,OnBlur和OnFocus等事件,这样就可以使用事件的处理函数完成相应的处理。

  FCK添加事件处理函数的方法是:fckInstance.Events.AttachEvent( EventName, function)

  代码

  

复制代码 代码如下:

  //FCKeditor加载完成后做处理的方法

  function FCKeditor_OnComplete( editorInstance )

  {

  editorInstance.Events.AttachEvent( 'OnBlur' , FCKeditor_OnBlur ) ;

  editorInstance.Events.AttachEvent( 'OnFocus', FCKeditor_OnFocus ) ;

  }

  function FCKeditor_OnBlur( editorInstance )

  {

  //失去焦点收起工具栏

  editorInstance.ToolbarSet.Collapse() ;

  }

  function FCKeditor_OnFocus( editorInstance )

  {

  editorInstance.ToolbarSet.Expand() ;

  }