2011-03-07 73 views

回答

3

我們正在做類似的事情,只不過我們在加載編輯器的頁面上有一個預覽鏈接。該方法可用於編輯器中的按鈕,但它需要額外的編碼(我將在底部概述該方法)。

預覽鏈接看起來是這樣的:

<a href="#" onclick="return doPreview();">Preview the page</a> 

我們有doPreview功能:

function doPreview() { 
var hiddenForm = document.forms[ 'hidden_form' ]; 

// TextareaId is the id of the textarea being replaced with CKEditor (the instance name) 
hiddenForm.elements[ 'preview_content' ].value = CKEDITOR.instances.TextareaId.getData(); 

// "myform" is the active form that contains the textarea replaced by CKEditor. 
var liveForm = document.forms[ 'myform' ]; 
if (! liveForm) { 
    alert('Error finding "myform" form.'); 
    return false; 
} 

hiddenForm.submit(); 

return true; 

}

最後,還有隱藏字段(hiddenForm)的一種形式:

<form name="hiddenForm" action="HTTP://www.yoursite.com/preview_template" method="POST" target="_blank"> 
    <input type="hidden" name="preview_content" value="" /> 
</form> 

因此,鏈接被點擊並調用doPreview函數。
該函數從CKEditor獲取內容並將其分配給隱藏窗體中的隱藏字段。
然後函數提交隱藏表單。
發佈隱藏表單並將預覽模板加載到新窗口中。
預覽模板的內容區域填充$ _POST ['preview_content'](來自編輯器的內容數據)。

您可以修改以包含需要發佈的任何變量。


要通過點擊中CKEditor的一個按鈕,這樣做:
您可以創建一個自定義的插件。有方便指令的教程節在這裏創建插件:
http://docs.cksource.com/CKEditor_3.x/Tutorials

該插件可以在主頁上的一個隱藏的形式重新工作,你需要從你的插件功能調用父窗口。或者,你可以在你的插件中用JavaScript編寫表單並從那裏提交。

注意:您可以使用此設置來禁用默認預覽功能:

config.removePlugins = 'preview'; 

要好吧, 喬