2011年8月11日 星期四

如何用 Javascript 取得和設定修改 Fckeditor (CKEditor) 的值

假設 CKEditor 欄位名稱叫做 body,那麼當阿舍想用 Javascript 來取得 CKEditor 裡的 HTML 碼時,就可以用下面方式來取得,傳回值會是一個字串:
var ckeditorString = CKEDITOR.instances.body.getData();

相反的,如果要用 Javascript 來塞值到 CKEditor 裡去,那就用 setData() 的方式來做,做法如下:
CKEDITOR.instances.body.setData( '<b>Hello World !</b>' );

取得編輯器中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編輯器
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 編輯器的內容
// 第二個參數為:true|false,是否以所得即所得的方式設定內容。此方法通常用在設定初始值或表單重設oEditor.SetHTML("content", false);

//將內容插入 FCK 編輯器:
oEditor.InsertHtml("html"); // "html"為HTML文本

//檢查 FCK 編輯器內容是否有改變
oEditor.IsDirty();

沒有留言:

張貼留言