每当进行更改时,我都希望无缝地从TinyMCE中提取内容。但是在TinyMCE 4.3中似乎唯一的方法是让getContent()返回最近的更改,你需要触发一次点击。
请查看我的小提琴:http://jsfiddle.net/xxfm68ue/1/
tinyMCE.init({
// General options
mode : "exact",
elements : "thisID",
// Skin options
skin : "o2k7",
skin_variant : "silver",
setup: function(editor) {
editor.on('change', function(e) {
alert(e.target.getContent());
console.log(e.target.getContent());
});
}
});
还有其他方法可以自动提取内容吗?
答案 0 :(得分:0)
change
事件触发。因此,除非用户已停止输入(即触发blur
事件),否则不会触发change
事件。
要在用户输入时跟踪更改,您需要捕获keypress
个事件
以下代码将事件处理程序附加到 keyup 事件。现在,按下每个键(isCharacterKeyPress()
检查不需要的按键)也会触发contentChanged事件。
setup: function(editor) {
// helper function for keyup event
function isCharacterKeyPress(evt) {
if (typeof evt.which == "undefined") {
// This is IE, which only fires keypress events for printable keys
return true;
} else if (typeof evt.which == "number" && evt.which > 0) {
// In other browsers except old versions of WebKit, evt.which is
// only greater than zero if the keypress is a printable key.
// We need to filter out backspace and ctrl/alt/meta key combinations
return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which != 8;
}
return false;
};
//function which will act on "change" event
var contentChanged = function(e) {
if(e.type == "keyup" && ! isCharacterKeyPress(e) )
{
return;
}
alert(e.target.innerHTML);
console.log(e.target.innerHTML);
};
//adding eventhandlers
editor.on('keyup', contentChanged );
editor.on('change', contentChanged );
}