FCKeditor API中文用例说明
FCKeditor Api官方文档地址:http://wiki.fckeditor.net/Developer's_Guide/Javascript_API
下面提供国内某网友的翻译文档,转载地址:http://blog.imwebs.com/article.asp?id=322
FCK 编辑器加载后,将会注册一个全局的 FCKeditorAPI 对象。
如何交互式地知道 FCK 编辑器已经加载完成?
FCKeditorAPI 对象在页面加载期间是无效的,直到页面加载完成。如果需要交互式地知道 FCK 编辑器已经加载完成,可使用"FCKeditor_OnComplete"函数。
- <script type="text/javascript">
 - function FCKeditor_OnComplete(editorInstance) {
 - FCKeditorAPI.GetInstance('FCKeditor1').Commands.GetCommand('FitWindow').Execute();
 - }
 - </script>
 
在当前页获得 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 编辑器的内容:
- oEditor.GetXHTML(formatted); // formatted 为:true|false,表示是否按HTML格式取出
 - //也可用:
 - oEditor.GetXHTML();
 
设置 FCK 编辑器的内容:
- oEditor.SetHTML("content", false); // 第二个参数为:true|false,是否以所见即所得方式设置其内容。此方法常用于"设置初始值"或"表单重置"哦作。
 
插入内容到 FCK 编辑器:
- oEditor.InsertHtml("html"); // "html"为HTML文本
 
检查 FCK 编辑器内容是否发生变化:
- oEditor.IsDirty();
 
重置FCK 编辑器内容是否发生变化的状态.
- oEditor.ResetIsDirty();
 
在 FCK 编辑器之外调用 FCK 编辑器工具条命令:
命令列表如下:
- DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo
 
使用方法如下:
- oEditor.Commands.GetCommand('FitWindow').Execute();
 
- function abc()
 - {
 - var checkContent =FCKeditorAPI.GetInstance("editor");//获取实例
 - alert(checkContent.GetXHTML());//获取当前内容
 - var newelement = document.createElement("a");
 - newelement.href="#";
 - newelement.innerHTML="df";
 - checkContent.InsertElement(newelement);//前部添加元素(无返回值)
 - var a=checkContent.InsertElementAndGetIt(newelement);//前部添加元素(返回元素)
 - checkContent.InsertHtml("")//添加html
 - checkContent.SetHTML("",true);//设置内容,后为bool,是否所见即所得
 - }
 
- function aaa()
 - {
 - var checkContent =FCKeditorAPI.GetInstance("editor");//获取实例
 - checkContent.SwitchEditMode();//转变编辑模式
 - checkContent.UpdateLinkedField();//更新关联文件
 - }
 
- function FCKeditor_OnComplete( checkContent )//当加载完
 - {
 - alert( checkContent.Name ) ;
 - }
 
//设置fckeditor为只读
- function FCKeditor_OnComplete(editorInstance)
 - {
 - editorInstance.EditorDocument.body.disabled = true;
 - editorInstance.EditorWindow.parent.document.getElementById('xExpanded').style.display = 'none';
 - editorInstance.EditorWindow.parent.document.getElementById('xCollapsed').style.display = 'none';
 - editorInstance.EditorWindow.blur();
 - }
 
向编辑器插入指定代码
- function insertHTMLToEditor(codeStr){
 - var oEditor = FCKeditorAPI.GetInstance("content");
 - if (oEditor.EditMode==FCK_EDITMODE_WYSIWYG){
 - oEditor.InsertHtml(codeStr);
 - }else{
 - return false;
 - }
 - }
 
统计编辑器中内容的字数
- function getLength(){
 - var oEditor = FCKeditorAPI.GetInstance("content");
 - var oDOM = oEditor.EditorDocument;
 - var iLength ;
 - if(document.all){
 - iLength = oDOM.body.innerText.length;
 - }else{
 - var r = oDOM.createRange();
 - r.selectNodeContents(oDOM.body);
 - iLength = r.toString().length;
 - }
 - alert(iLength);
 - }
 
执行指定动作
- function ExecuteCommand(commandName){
 - var oEditor = FCKeditorAPI.GetInstance("content") ;
 - oEditor.Commands.GetCommand(commandName).Execute() ;
 - }
 
设置编辑器中内容
- function SetContents(codeStr){
 - var oEditor = FCKeditorAPI.GetInstance("content") ;
 - oEditor.SetHTML(codeStr) ;
 - }
 
使用FCKEditor时使用js在光标处添加任意字符串
- function InsertHTML(e,inStr)//e:FCKEditor的ID,inStr:要插入的信息
 - {
 - var oEditor = FCKeditorAPI.GetInstance(e) ;
 - if ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG )
 - {
 - oEditor.InsertHtml( inStr ) ;
 - }
 - else
 - alert("You must be on WYSIWYG mode!" ) ;
 - }
 
FCKeditor提供了一套完整的API.当编辑器对象被载入后,可以使用这些API操作它.
FCK 编辑器加载后,将会注册一个全局的 FCKeditorAPI 对象。这个对象是操作页面内任何编辑器(一个页面可以有多个编辑器)的入口点.当页面放置了一个编辑器,你只要提供实例名如:InstanceName.调用FCKeditorAPI.GetInstance方法即可得到编辑器对象.如:
- var oEditor = FCKeditorAPI.GetInstance('InstanceName') ;
 
FCKEditor编辑器对象
GetInstance方法返回的编辑器对象有下列属性和方法:
* Description = string
* EditMode = Integer
* Name = string
* Status = Integer
* function AttachToOnSelectionChange(functionPointer)
* function CleanAndPaste(html)
* function CreateElement(tag)
* function CreateLink(url)
* function ExecOnSelectionChange() //Fires OnSelectionChange event in event manager
* function ExecOnSelectionChangeTimer()
* function ExecuteNamedCommand(commandName, commandParameter)
* function ExecuteRedirectedNamedCommand(commandName, commandParameter)
* function Focus()
* function GetHTML(format) // doesnt work. Use GetXHTML instead.
* function GetNamedCommandState(commandName)
* function GetNamedCommandValue(commandName)
* function GetXHTML(format)
* function InitializeBehaviors()
* function InsertElement(element)
* function InsertElementAndGetIt(e)
* function InsertHtml(html)
* function IsDirty();
* function MakeEditable()
* function OnDoubleClick(element)
* function Paste()
* function PasteAsPlainText()
* function PasteFromWord()
* function Preview()
* function RegisterDoubleClickHandler(handlerFunction, tag)
* function ResetIsDirty();
* function SetHTML(html, forceWYSIWYG)
* function SetStatus()
* function ShowContextMenu(x, y)
* function SwitchEditMode()
* function UpdateLinkedField() 
FCKEditor编辑器的事件
如果编辑器加载完成,一个函数将可能会被调用.如果这个函数被定义了,这个函数名必须是:FCKeditor_OnComplete,相关编辑器的实例是该函数的参数.使用这个函数可以执行一些初始化代码.示例:
- function FCKeditor_OnComplete( editorInstance )
 - {
 - alert( editorInstance.Name ) ;
 - }
 
除了上边的标准事件外. FCKeditor实例有一个事件管理器对象.它用来监听事件是否被触发.例如:监听OnSelectionChange事件的自定义处理代码.
- var counter = 0 ;
 - function DoSomething( editorInstance )
 - {
 - window.document.title = editorInstance.Name + ' : ' + ( ++counter ) ;
 - }
 - function FCKeditor_OnComplete( editorInstance )
 - {
 - editorInstance.Events.AttachEvent( 'OnSelectionChange', DoSomething ) ;
 - }
 
注意:每个回调函数都把编辑器实例作为参数.
下面是有效的事件列表:
OnSelectionChange: 当在编辑器内的选择区改变时触发.
OnAfterSetHTML: 当编辑器内的html被载入后触发,包括改变试图.
OnStatusChange:当编辑器的状态发生改变时触发. 编辑器的有效状态: FCK_STATUS_NOTLOADED, FCK_STATUS_ACTIVE and FCK_STATUS_COMPLETE. 
OnPaste: 在编辑器内粘贴时触发.
                    
                
                
            
        
浙公网安备 33010602011771号