CKEditor - insertText tidak berfungsi setelah setData

Saya mencoba memasukkan sesuatu setelah menghapus konten dengan menggunakan setData(""), lalu saya memasukkan sesuatu ke dalamnya menggunakan metode insertText. Namun isinya tetap kosong.

Kode yang relevan:

CKEDITOR.instances.content.setData("");
CKEDITOR.instances.content.focus();
CKEDITOR.instances.content.insertText("the text I want to insert");

Kode di atas tidak berfungsi. Adakah yang bisa membantu saya? menemukan cara lain untuk menghapus konten di CKEditor daripada menggunakan setData("") atau membuat metode insertText berfungsi setelah setData akan membantu menyelesaikan masalah saya. Terimakasih banyak!


person Qing Ye    schedule 13.08.2012    source sumber


Jawaban (4)


Tidak berfungsi untuk saya juga. Pasti ada bug. Tetapi dengan jquery ada jalan keluarnya.

$('#content').val('the text I want to insert');

Untuk adaptor jquery lihat di sini: http://ckeditor.com/blog/CKEditor_for_jQuery

person Sven    schedule 17.08.2012
comment
Terima kasih Sven, itu sangat membantu - person Qing Ye; 18.08.2012

Saya punya masalah yang sama tetapi intinya adalah metode setData() tidak sinkron. Jika Anda ingin menjalankan sesuatu setelah setData(), Anda harus membuat metode panggilan balik.

var fooCallback = function(){
    CKEDITOR.instances.content.focus();
    CKEDITOR.instances.content.insertText("the text I want to insert");
};
CKEDITOR.instances.content.setData("", fooCallback);
person Edward    schedule 22.05.2014
comment
Kamu Sempurna dalam bahasa arab kami ucapkan انتا راجل كفائه +1 - person Marwan; 14.05.2015

Saya mengalami masalah yang sama dan menemukan solusinya. Saat "mengosongkan" editor Anda, jangan gunakan string kosong, melainkan gunakan CKEDITOR.yourEditor.setData('<span></span>'), atau (mungkin) "html valid" serupa lainnya yang tidak menampilkan apa pun. Saya hanya mencoba ini dengan rentang untuk saat ini. panggilan selanjutnya ke metode setData tidak akan gagal. Menikmati.

person Dantte    schedule 14.01.2013

Saya memiliki masalah yang sama tetapi menginstal adaptor jquery seperti yang disarankan oleh solusi yang diterima bukanlah suatu pilihan bagi saya.

Saya dapat membuatnya berfungsi dengan solusi berikut pada panggilan kedua:

setTimeout(function(){
  CKEDITOR.instances["myEditor"].setData(newText);
}, 0);

Saya mendapat idenya dari sini: https://dev.ckeditor.com/ticket/10663#comment:7

person matias.g.rodriguez    schedule 08.11.2015