删除CKEditor中的HTML元素

Mat*_*ves 4 html javascript jquery ckeditor

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

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

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

有什么建议?

Rei*_*mar 9

CKEditor的内容保存在您可以访问的元素中editor.editable().然后,你可以使用类似的方法dom.element.find()dom.element.findOne()最后你可以使用删除元素dom.element.remove().您还可以访问本机DOM节点并使用jQuery.

使用CKEditor API的示例:

editor.editable().findOne( 'img' ).remove();
Run Code Online (Sandbox Code Playgroud)

使用jQuery:

jQuery( editor.editable().$ ).find( 'img' ).remove();
Run Code Online (Sandbox Code Playgroud)

  • 仅限CKEditor 4.在CKEditor 3中,您可以使用`jQuery(editor.document.$)`. (2认同)