从JQuery中的CK Editor textarea获取文本
我在一个应用程序中使用CK编辑器。
但我无法从该textarea检索文本。 我试过了-
var content= $("#contentDetails").text(); //and also .val() & .html()
但是content
变量仍然是空的。
任何的想法?
//UPDATE - add my codes below CKEDITOR.replace('contentDetails'); $(function () { $("#submitcontent").click(function (e) { e.preventDefault(); var content= $("#contentDetails").text(); }); });
试试这个:
var text = CKEDITOR.instances.contentDetails.getData();
官方CKEditor jQuery适配器指南解释:
// Get the editor data. var data = $( 'textarea.editor' ).val(); // Set the editor data. $( 'textarea.editor' ).val( 'My new content' );
Ckeditor将用它自己的元素替换你的textarea,这是你需要从中获取html的地方。 如果你检查原始文本区域,你会发现它是空的,内容实际上是编辑器生成的一堆html中的其他地方。 尝试使用inspect元素查找包含可以使用的内容的元素的选择器。 确保在编辑器初始化后执行jQuery。
这是另外一个例子(基于CKEditor5 ):
let theEditor; ClassicEditor .create(document.querySelector('#contentDetails')) .then(editor => { theEditor = editor; }) .catch(error => { console.error(error); }); function getDataFromTheEditor() { return theEditor.getData(); } document.getElementById('getdata').addEventListener('click', () => { alert(getDataFromTheEditor()); });
根据官方文档: CKEditor Dom Element
尝试
textarea = document.getElementById('contentDetails'); textareaNode = new CKEDITOR.dom.element(textarea); textareaNode.getValue();