Подтвердить что ты не робот

Как я могу получить содержимое CKEditor с помощью JQuery?

Я использую CKEditor. Я сохраняю значения формы с помощью ajax, используя методы страницы.

Но содержимое значения CKEditor не может быть сохранено в таблице.

Я не переношу страницу.

Что я могу сделать для этого?

4b9b3361

Ответ 1

Прежде всего, вы должны включить ckeditor и jquery connector script на своей странице,

затем создайте текстовое поле

<textarea name="content" class="editor" id="ms_editor"></textarea>

присоедините ckeditor к текстовой области, в моем проекте я использую что-то вроде этого:

$('textarea.editor').ckeditor(function() {
        }, { toolbar : [
            ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
            ['Undo','Redo'],
            ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
            ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
            ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
            ['Link','Unlink','Anchor', 'Image', 'Smiley'],
            ['Table','HorizontalRule','SpecialChar'],
            ['Styles','BGColor']
        ], toolbarCanCollapse:false, height: '300px', scayt_sLang: 'pt_PT', uiColor : '#EBEBEB' } );

on submit Получить контент, используя:

var content = $( 'textarea.editor' ).val();

Что это!:)

Ответ 2

используйте CKEditor.editor.getData() вызов экземпляра. То есть:

HTML

<textarea id="my-editor">
<input id="send" type="button" value="Send">

JS для CKEditor 4.0.x

$('#send').click(function() {
    var value = CKEDITOR.instances['DOM-ID-HERE'].getData()
    // send your ajax request with value
    // profit!
});

JS для CKEditor 3.6.x

var editor = CKEDITOR.editor.replace('my-editor');

$('#send').click(function() {
    var value = editor.getData();
    // send your ajax request with value
    // profit!
});

Ответ 3

Если вы не держите ссылку на редактор, как в ответе Aeon, вы также можете использовать форму:

var value = CKEDITOR.instances['my-editor'].getData();

Ответ 4

var value = CKEDITOR.instances['YourInstanceName'].getData()
 alert( value);

Замените YourInstanceName именем вашего экземпляра, и вы получите желаемые результаты.

Ответ 5

У меня возникали проблемы с getData(), которые не работают каждый раз, особенно при работе с live ajax.

Было возможно обойти его, запустив:

for(var instanceName in CKEDITOR.instances){
    CKEDITOR.instances[instanceName].updateElement();
}

Затем используйте jquery для получения значения из текстового поля.

Ответ 6

Благодаря Джону Магнолии. Это моя функция postForm, которую я использую в своих проектах Symfony, и теперь хорошо работать с CK Editor.

function postForm($form, callback)
{
  // Get all form values
  var values = {};
  var fields = {};

  for(var instanceName in CKEDITOR.instances){
      CKEDITOR.instances[instanceName].updateElement();
  }

  $.each($form.serializeArray(), function(i, field) {
      values[field.name] = field.value;
  });

  // Throw the form values to the server!
  $.ajax({
      type        : $form.attr('method'),
      url         : $form.attr('action'),
      data        : values,
      success     : function(data) {
          callback( data );
      }
  });

Ответ 7

Теперь, когда существует jQuery-адаптер, этот ответ необходимо обновить:

Скажите, что вы инициировали редактор с помощью $('.ckeditor').ckeditor(opt), после чего вы получите значение с помощью $('.ckeditor').val()

Ответ 8


Я добавляю ckEditor, добавляя DLL в toolBox.
 html-код:

<CKEditor:CKEditorControl ID="editor1" runat="server" 
            BasePath="ckeditor" ContentsCss="ckeditor/contents.css" 
            Height="250px" 
            TemplatesFiles="ckeditor/themes/default/theme.js" FilebrowserBrowseUrl="ckeditor/plugins/FileManager/index.html" 
            FilebrowserFlashBrowseUrl="ckeditor/plugins/FileManager/index.html" FilebrowserFlashUploadUrl="ckeditor/plugins/FileManager/index.html" 
            FilebrowserImageBrowseLinkUrl="ckeditor/plugins/FileManager/index.html" FilebrowserImageBrowseUrl="ckeditor/plugins/FileManager/index.html" 
            FilebrowserImageUploadUrl="ckeditor/plugins/FileManager/index.html" 
            FilebrowserUploadUrl="ckeditor/plugins/FileManager/index.html" BackColor="#FF0066" 
                    DialogButtonsOrder="Rtl" 
                    FontNames="B Yekan;B Yekan,tahoma;Arial/Arial, Helvetica, sans-serif; Comic Sans MS/Comic Sans MS, cursive; Courier New/Courier New, Courier, monospace; Georgia/Georgia, serif; Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif; Tahoma/Tahoma, Geneva, sans-serif; Times New Roman/Times New Roman, Times, serif; Trebuchet MS/Trebuchet MS, Helvetica, sans-serif; Verdana/Verdana, Geneva, sans-serif" 
                    ResizeDir="Vertical" ResizeMinHeight="350" UIColor="#CACACA">dhd fdh</CKEditor:CKEditorControl>

для получения данных.
JQuery:

var editor  = $('textarea iframe html body').html();
    alert(editor); 

Ответ 9

Я думаю, что будет лучше, просто сериализуйте свою форму с помощью jquery и приветствия...

<form id="ajxForm">
  <!-- input elments here -->
  <textarea id="ck-editor" name="ck-editor" required></textarea>
  <input name="text" id="text" type="text" required> 
<form>

и в разделе javascript

CKEDITOR.replace('ck-editor', {
  extraPlugins: 'sourcedialog',
  removePlugins: 'sourcearea'
});

$("form#ajxForm").submit(function(e) {
  e.preventDefault();
  var data = $(this).serialize();
  if (data != '') {
    $.ajax({
      url: 'post.php',
      cache: false,
      type: 'POST',
      data: data,
      success: function(e) {
        setTimeout(function() {
          alert(e);
        }, 6500);
      }
    });
  }
  return;
});

Ответ 10

версия 4.6

CKEDITOR.instances.editor.getData()

Ответ 11

вы можете восстановить данные следующим образом:

<script>
var data = CKEDITOR.instances.editor1.getData();
// Your code to save "data", usually through Ajax.
</script>

ссылка: http://docs.ckeditor.com/#!/guide/dev_savedata