Мы делаем что-то подобное за исключением того, что у нас есть ссылка для предварительного просмотра на странице, которая загружает редактор. Подход можно использовать для кнопки в редакторе, но он требует дополнительного кодирования (я выделю этот подход внизу).
Ссылка предварительного просмотра выглядит примерно так:
<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';
Будь здоров,
Джо