不确定是否有人曾经使用过您的TinyMCE这个问题。 我有一个on change事件处理程序,它改变另一个元素的值。 请参阅以下init代码:
/** Initialize TinyMCE inline editor for headline text */
tinymce.init({
selector: ".editable.headline",
paste_as_text: true,
inline: true,
toolbar: "undo redo",
menubar: false,
verify_html: false,
font_formats: "MuseoSans = sans-serif;",
setup: function(ed) {
var text = '';
var wordlimit = 200;
/** handler for keydown event to prevent < 200 character limit */
ed.on('keydown',function(e) {
text = ed.getContent().replace(/(< ([^>]+)<)/g, '');
wordcount = wordlimit - (text.length);
if(wordcount <= 0 && e.keyCode != 8) {
e.preventDefault();
e.stopPropagation();
return false;
}
});
/** handler for headline text changes */
ed.on('change',function(e) {
var content = tinyMCE.get(ed.id).getContent();
var escapedClassName = ed.id.replace(/(\[|\])/g, '\\$&');
$('.'+escapedClassName).html(content);
});
}
});
当我输入/粘贴文本时change
事件正常触发,但是当我撤消文本更改时,change
事件无法正常触发。
我有什么想法可以强制解除撤消和重做事件的change
事件吗?
非常感谢任何帮助!
答案 0 :(得分:6)
内容不容易找到,但TinyMCE网站确实描述了events that are fired during the course of the editor's lifecycle的列表,并解释了这些事件何时被触发。
在您的方案中,只需将重做和撤消事件添加到on
函数中的setup
函数调用中。
setup: function (ed) {
ed.on('change redo undo',function(e) {
var content = tinyMCE.get(ed.id).getContent();
var escapedClassName = ed.id.replace(/(\[|\])/g, '\\$&');
$('.'+escapedClassName).html(content);
});
}
答案 1 :(得分:0)
仅供参考,我在更改链接的URL时遇到了同样的问题(它没有触发任何事件),我通过手动触发事件解决了这个问题:
tinymce.activeEditor.fire('change');