ckeditorInstance.insertElement( CKEDITOR.dom.element.createFromHtml('<html></html>'));
它插入很好,但是ckeditor不能识别插入作为一个小部件的元素,所以小部件可编辑的字段没有像他们应该启用.
有没有办法使ckeditor重新扫描其内容以初始化任何尚未初始化的新窗口小部件?
解决方法
首先 – 有一个小部件的数据格式(如何在数据中表示小部件)和内部格式(如何在编辑器中表示)的分离.您可能熟悉upcast和downcast功能 – 它们使这些格式之间进行转换(upcasting意味着将数据格式转换为内部格式).
upcasting和downcasting工作只有在数据字符串被处理,但是如果你使用编辑器insertElement插入内容没有处理,所以没有upcasting.
插入
你有两个解决方案:
>使用editor#insertHtml
而不是编辑器#insertElement.您的小部件将在插入之前上传,因此它将以良好的格式插入.
>照顾上传(如果需要)自己,并使用编辑器#insertElement.
初始化
这是小部件生命的第一步 – 它必须被插入.二是要初始化.
>目前有一个bug(它将在两周内修复),insertHtml方法插入的小部件没有被初始化.所以,在这个时候,在编辑#insertHtml插件后,你需要调用:
editor.widgets.checkWidgets()
>如果使用编辑器#insertElement,则需要处理初始化窗口小部件.要做那个电话:
editor.widgets.initOn( element,'widgetName' )
在这两种情况下,插入它后初始化窗口小部件
查看Widgets API了解更多详情.
另见我的回答explaining how to know if an element is a widget and how to insert them into editor.
原文地址:https://www.jb51.cc/js/152403.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。