Javascript Tinymce节点内容已更改

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

我试图在每次更改节点时触发一个事件

基本上,我需要在空行(节点)不再为空时触发它

在文档中,我只找到了change方法,但并不是每次都立即启动


有没有其他我可以收听的事件?

您可以在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突变事件作为后备(见我的更新答案)