2016-01-05 5 views
1

Я пытаюсь запустить событие каждый раз, когда узел был изменен.Изменено содержимое узла Tinymce

В основном мне нужно запустить его, когда пустая строка (узел) больше не пуста.

В документации я нашел только способ изменения, но это не срабатывает каждый раз немедленно.

Есть ли какие-либо другие мероприятия, которые я могу слушать?

ответ

0

Вы можете просмотреть наблюдателя мутации в редакторе tinymce и прослушать изменения. С помощью настройки параметров конфигурации TinyMCE и добавить обработчик инициализации наблюдать РОМ с самого начала:

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 ! 
      }); 
     } 
    }); 
} 

Вам может понадобиться настроить наблюдатель для ваших нужд. Здесь представлена ​​полезная страница о наблюдателях мутации: https://addyosmani.com/blog/mutation-observers/. Не используйте события мутации, потому что они устарели.

Вы можете использовать события мутации как резерв для браузеров, которые не поддерживают наблюдателей (см. Код выше).

+0

спасибо. Как это происходит с кросс-браузером? –

+0

Наблюдатели за мутациями - это функция HTML5 и будут работать со всеми новыми браузерами. См. Таблицу, в которой упоминается эта проблема: http://caniuse.com/#feat=mutationobserver – Thariama

+0

это своего рода проблема. Мне нужно что-то, что будет работать хотя бы для IE9. –