如何解决在运行 tinyMCE.triggerSave() 后,如何让 TinyMCE 编辑器再次工作?
我正在通过 ajax 向我的后端服务器发送输入。部分输入来自 TinyMCE 富文本编辑器。我已经运行 tinyMCE.triggerSave()
来实现它,以便我可以从初始 textarea 中获取值,而不是试图找出动态创建的 tinyMCE 编辑器键。问题是,当我这样做时,它会使所有 tinyMCE 富文本编辑器对编辑尝试无响应。我无法点击文本区域。
编辑
我有一个方法可以重新初始化所有编辑器。这就是其中一个答案试图采用的方法。但是,这不是我发现的问题。问题似乎出在我尝试对包含编辑器的卡片进行排序时。卡片按其中的日期排序。这就是使编辑器不可编辑的原因。我希望我知道一种更好的方法来对它们进行排序。我是否需要“关闭”编辑器然后重新初始化它们?
这里是编辑器脚本
/**
* Sort contact history cards by the date they show.
*/
const sortHistories = () => {
$(".history-card").sort((first,second) => {
const firstDate = Date.parse($(first).attr('data-history-date'));
const secondDate = Date.parse($(second).attr('data-history-date'));
return (firstDate > secondDate) ? -1 : (firstDate < secondDate) ? 1 : 0;
}).appendTo($("#history-cards"));
};
解决方法
当您调用 triggerSave()
时,TinyMCE 所做的就是获取 TinyMCE 的当前内容并将其推送到底层 textarea
。
我制作了一个 TinyMCE Fiddle 来展示这一点:
https://fiddle.tiny.cloud/F3haab/1
如果您在编辑器中编辑内容并单击第一个按钮,您将看到 getContent()
API 调用看到更新,但基础 textarea
不会更新。如果您单击第二个按钮,这将首先调用 triggerSave()
,然后调用与第一个按钮相同的方法。第二个按钮的最终结果显示 triggerSave()
将 textarea
与编辑器同步。
此活动本身对编辑器的功能没有任何影响。
你为什么要重新初始化编辑器?您是否首先remove()
编辑?我不认为提交内容的简单操作会要求您remove()
并重新init()
编辑器,因此页面上可能存在您未描述的其他内容?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。