如何获取ckeditor预览按钮以将内容发送到服务器,以便在点击预览时在自定义页面中显示?
答案 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
您只需配置要用于预览的页面,它将替换默认的“预览”按钮。其他选项在附带的文档中进行了说明。