Javascript Tinymce节点内容已更改
我试图在每次更改节点时触发一个事件 基本上,我需要在空行(节点)不再为空时触发它 在文档中,我只找到了change方法,但并不是每次都立即启动Javascript Tinymce节点内容已更改,javascript,events,tinymce,rte,mutation-observers,Javascript,Events,Tinymce,Rte,Mutation Observers,我试图在每次更改节点时触发一个事件 基本上,我需要在空行(节点)不再为空时触发它 在文档中,我只找到了change方法,但并不是每次都立即启动 有没有其他我可以收听的事件?您可以在tinymce编辑器dom上协助突变观察者并收听更改。使用tinymce配置参数设置并添加一个init处理程序,以便从一开始就观察dom: setup : function(ed) { ed.on('init', function(e){ // MutationObserver
有没有其他我可以收听的事件?您可以在tinymce编辑器dom上协助突变观察者并收听更改。使用tinymce配置参数设置并添加一个init处理程序,以便从一开始就观察dom:
setup : function(ed) {
ed.on('init', function(e){
// MutationObserver
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
if (typeof MutationObserver != 'undefined')
{
// select the target node
var targets = ed.getDoc().querySelector('body');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// do your magic here!!!
});
});
// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true }
// pass in the target node, as well as the observer options
observer.observe(targets, config);
}
// fallback for older browsers
else
{
$(ed.getBody()).bind('DOMNodeChanged', function(e) {
// do your magic here !
});
}
});
}
您可能需要根据需要配置观察者。
这是一个关于突变观察者的有用页面:。
不要使用突变事件,因为它们已被弃用
对于不支持观察者的浏览器,您可以使用变异事件作为回退(请参见上面的代码)。谢谢。如何实现跨浏览器兼容性?变异观察者是HTML5的一项功能,将适用于所有较新的浏览器。请看一张表格,重新考虑这个问题:这有点问题。我需要的东西将至少适用于IE9。在这种情况下,你将不得不使用dom突变事件作为后备(见我的更新答案)