我最近升级了 TinyMCE* 版本,发现这个新版本 (4.9.11) 在使用
tinymce.get("myUsercreatedID").getContent()
时不会返回 HTML。
我尝试了
tinymce.get("myUsercreatedID").getContent({format: 'html'})
,但也没有成功。
如何获取 HTML 格式的 TinyMCE 编辑器内容?
* TinyMCE 转向订阅服务,并从其网站和所有网络存储库中删除了所有旧(免费)版本。他们真是太公平了。但是,我发现如果您下载任何 nupkg(仅是一个 zip 文件)并提取内容 -> 脚本 -> tinymce 文件夹,NuGallery 已存档所有版本的副本。
无需使用
.getContent()
来获取编辑器内容。
TinyMCE 的编辑器位于页面上,就像任何其他 HTML 一样,每个 TinyMCE 编辑器都包含在一个 iframe 中。每个编辑器都可以通过以下方法直接访问。
首先,请注意 TinyMCE 要求您为每个编辑器指定一个唯一的 ID - 在本示例中我们将其称为“MyUniqueID”。
const ifm = document.querySelector('iframe[id*=MyUniqueID_ifr]');
const innerDoc = ifm.contentDocument || ifm.contentWindow.document;
const myHtml = innerDoc.querySelector('body#tinymce').innerHTML;
注意
body#tinymce
也是用户指定的。您可能将其命名为 tinyMCE
,在这种情况下,字符串将为 body#tinyMCE
——回想一下 JavaScript 是区分大小写的。