2010-12-09 3 views
1

Я хотел бы иметь кнопку в другом месте на моей странице, которая запускает тот же метод, что и кнопка «Предварительный просмотр» на панели инструментов CKEditor. Я использую jquery, так что это будет примерно так:Метод предварительного просмотра CKEditor

$('#previewButton').click(function() { 
$('#editor1').ckEditorGet().Preview(); 
}); 

Любые идеи, как я мог бы это сделать? Я просмотрел документацию API, но не могу найти ни слова.

Приветствия

ответ

2

В качестве альтернативы вы можете получить содержимое редактора с помощью $('#editor1').val() и отобразить его так, как вы предпочитаете. В этом примере используется всплывающее окно:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
<script type="text/javascript" src="ckeditor/ckeditor.js"></script> 
<script type="text/javascript" src="ckeditor/adapters/jquery.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#previewButton').click(function() { 
      var contents = $('#editor1').val(); 
      var mywin = window.open("", "ckeditor_preview", "location=0,status=0,scrollbars=0,width=500,height=500"); 

      $(mywin.document.body).html(contents); 
     }); 

     $('#editor1').ckeditor();  
    }); 
</script> 

<textarea id="editor1" cols="5" rows="5"> 
Contents... 
</textarea> 

<button id="previewButton">Preview</button> 
+0

Интересная идея ... Я попробую, когда у меня появится шанс. Единственный комментарий, который у меня есть, это то, что я не думаю, что вы можете получить доступ к HTML-файлу CKEditor с помощью метода .val(). Вам нужно сделать, $ ("# editor1"). CkEditorGet(). GetData(). – MikeMurko 2010-12-11 02:41:00

0

На первый взгляд, вы могли бы сделать что-то вроде этого

$('[title="Preview"]').click(); 

Выберите anchor с title=preview и вызвать щелчок.

+0

Magic, это сработало! Я собираюсь также изучить подход к стилю, потому что я думал о том, чтобы что-то делать * с * содержимым, которое просматривается в новом окне, и его подход позволяет мне это сделать. Спасибо за помощь! – MikeMurko 2010-12-11 02:46:03

1

Использование Firebug или другого инструмента разработки перейдите на кнопку «Предварительный просмотр» в CKEditor. Там вы найдете функцию в событии click, например:

CKEDITOR.tools.callFunction(6, this); return false; 

Вы можете использовать его для открытия окна предварительного просмотра. Вы можете сделать что-л. подобный:

<html><a ... onclick="openPreview(this); return false;"></a></html> 
<script>function openPreview(ar_obj){ CKEDITOR.tools.callFunction(6, ar_obj); }</script> 
Смежные вопросы