您的位置:首页 > Web前端 > JavaScript

JS获取FckEditor的值 FCK

2013-03-27 15:12 225 查看
function createEditor()
{        
        fck=new FCKeditor("fckeditor"); //实例一个编辑器
        fck.BasePath="./fckeditor/"; //指定路径
        fck.Height="100%";  
        fck.Width="100%";
        $("textarea").html(fck.CreateHtml());
}
//获取编辑器中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) ;
}

 

 

 

 

 

--------------------------------------------------------------------------

 

 

在JS里取值方法如下:

JavaScript代码

var checkContent =FCKeditorAPI.GetInstance("content").GetXHTML();  

另外还要让编辑器获得焦点:

JavaScript代码

var oEditor = FCKeditorAPI.GetInstance('content');   

oEditor.Focus();  

注意这里的Focus()是大写。

------------------------------------------------------------------

在JS里取值方法如下:var checkContent =FCKeditorAPI.GetInstance("content").GetXHTML();

长度验证:FCKeditorAPI.GetInstance("content").GetXHTML().length;

另外还要让编辑器获得焦点:var oEditor = FCKeditorAPI.GetInstance('content');oEditor.Focus();

FCK 编辑器加载后,将会注册一个全局的 FCKeditorAPI 对象. FCKeditorAPI 对象在页面加载期间是无效的,直到页面加载完成.如果需要交互式地知道 FCK 编辑器已经加载完成,可使用"FCKeditor_OnComplete"函数.

<script type="text/javascript">

function FCKeditor_OnComplete(editorInstance) {

    FCKeditorAPI.GetInstance('FCKeditor1').Commands.GetCommand('FitWindow').Execute();

}

</script>

在当前页获得FCK 编辑器实例: var oEditor = FCKeditorAPI.GetInstance('InstanceName');

从 FCK 编辑器的弹出窗口中获得FCK 编辑器实例: var oEditor = window.parent.InnerDialogLoaded().FCK;

从框架页面的子框架中获得其它子框架的FCK 编辑器实例: var oEditor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

从页面弹出窗口中获得父窗口的FCK 编辑器实例: var oEditor = 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 编辑器之外调用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

---------------------------------------------
e73a
---------------------------------------------------

补充:

上面的验证fck内容是否为空是有问题的,fck默认就往里写了些内容,直接判断为空显然不行。

解决办法:

//取fck内容的长度

function GetMessageLength(str) {

    var oEditor = FCKeditorAPI.GetInstance(str) ;

    var oDOM = oEditor.EditorDocument ;

    var iLength ;

    if ( document.all )        // If Internet Explorer.

    {

        iLength = oDOM.body.innerText.length ;

    }

    else                    // If Firefox.

    {

        var r = oDOM.createRange() ;

        r.selectNodeContents( oDOM.body ) ;

        iLength = r.toString().length ;

    }

return iLength

}

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

   var checkContent = GetMessageLength('InstanceName');

   if(checkContent == '0') {

     alert('请输入消息内容');

     oEditor.Focus();   //取得焦点,注意是大写

     return false;

   }

//取fck内容

function GetMessageContent(str)

{

     var oEditor = FCKeditorAPI.GetInstance(str) ;

     return oEditor.GetXHTML();

}

<script>

var oEditor = FCKeditorAPI.GetInstance("txt2");

            alert(oEditor.GetXHTML(true));

</script>

<div  style="margin-top: 10px;">

        <textarea cols="1" rows="1" id="txt2" name="txt2" style="width: 400px; height: 60px;"></textarea>

        

        <script type="text/javascript" language="javascript">

            var scpMgr = new CaptureManager();

            //www.ncmem.com/products/screencapture/demo/upload.aspx,如果不是这个域名。可能出现域名未授权现象,这样可以用外网IP代替上述域名来实现

            scpMgr.Config["PostUrl"] = "http://192.168.0.100/market/asp.net/upload.aspx"; 

            //scpMgr.Config["PostUrl"] = "http://www.ncmem.com/products/screencapture/demo/upload.aspx"; 

            var oFCKeditor = new FCKeditor('txt2');

            

            oFCKeditor.BasePath = "fckeditor/";

            oFCKeditor.ToolbarSet = 'Basic';

            oFCKeditor.Height = "200";

            

            oFCKeditor.ReplaceTextarea();

            function FCKeditor_OnComplete(editorInstance) {

                scpMgr.Init(editorInstance); //初始化

            }

    </script>

</div>

转载 http://ayue05.blog.163.com/blog/static/134134591201211354912618/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: