移除CKEditor中的HTML元素

Removing HTML element in CKEditor

本文关键字:元素 HTML 中的 CKEditor 移除      更新时间:2023-09-26

我正在创建一个CKEditor插件。作为这个插件的一部分,我希望能够从编辑器的内容中删除一些任意的HTML元素。例如一个<img id="remove-me" />

我知道我可以得到内容(var contents = e.getData();),并将内容替换为其他内容(e.setData(newContents);)。我知道我可以做一个字符串/正则表达式替换,但这很棘手,因为用户可能会在HTML中添加一些任意属性或空格。

我希望能够使用像jQuery这样的东西来查找和删除元素(如$("#remove-me").remove(),但不知道如何做到这一点。

有什么建议吗?

CKEditor的内容保存在您可以通过editor.editable()访问的元素中。然后,您可以使用dom.element.find()dom.element.findOne()等方法,最后您可以使用dom.element.remove()删除元素。你也可以访问本地DOM节点和使用jQuery。

使用CKEditor API的例子:

editor.editable().findOne( 'img' ).remove();
使用jQuery:

jQuery( editor.editable().$ ).find( 'img' ).remove();

你可以这样做

CKEDITOR.instances.editor_obj.document.getById(id).remove();

editor_obj.document.getById(id).remove();