ck编辑器 - 服务器预览?

时间:2011-03-07 21:42:48

标签: php javascript ckeditor

如何获取ckeditor预览按钮以将内容发送到服务器,以便在点击预览时在自定义页面中显示?

2 个答案:

答案 0 :(得分: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';

好吧, 乔

答案 1 :(得分:1)

您可以在此处准备好插件:http://alfonsoml.blogspot.com/2011/08/serverpreview-plugin-for-ckeditor.html

您只需配置要用于预览的页面,它将替换默认的“预览”按钮。其他选项在附带的文档中进行了说明。