我正在尝试从 tinymce版本4.1.9 迁移到最新的 tinymce version 4.3.12 。我有一个自定义按钮,可以触发事件并同时切换(更改按钮的图像)。它适用于早期版本的tinymce(所有版本的3.x和4.1.2)但现在在tinymce 4.3.12中给出错误消息。
错误消息是:chrome调试控制台中的Uncaught TypeError: self.addClass is not a function
。
我查看了最新的documentation,其中清楚地显示.addClass
是图书馆的一部分(tinymce.dom.DOMUtils类)。
请参阅以下部分我正在使用的代码:
tinymce.init({
setup: function (ed) {
ed.addButton('autosave', {
image: '/images/autosave_disk_off.png',
cmd: 'autosave',
selectable: true,
onClick: toggleAutoSave,
onPostRender: function() {
var self = this;
self.addClass('classAutosave');
ed.on('autosaveStateChanged', function(e) {
self.active(e.state);
});
}});
}
});
我想在当前元素中添加一个类,以便可以完成图像切换。
有人可以帮助理解为什么这段代码无法在tinymce 4.3.12中运行?
是否有在onPostRender中添加类的替代方法?
由于
答案 0 :(得分:0)
我想出了原因,我所做的是比较tinymce.js
版本3.1.10和tinymce.js
版本3.2.0的代码。我选择了3.1.10,因为这是我的addClass()
工作的最后一个版本。这是从3.2.0开始的。
在比较时,我发现已为addClass()
和removeClass()
API进行了大量代码更改。我还发现内部的tinymce使用self.classes.add('classAutosave')
来添加新类。所以我在我的插件中尝试了相同的方式,它的工作原理。到目前为止,我还没有找到任何提及此更改的文档。我仍在检查tinymce论坛,我可能会打开一张带有tinymce dev的票。如果有任何新信息到达,将更新答案。
<强>观察:强>
使用self.classes.add('classAutosave')
代替self.addclass('classAutosave')
添加tinymce 3.20的新课程 - &gt; tinymce 4.3.12