Я пытался использовать следующий метод для захвата, когда поле tinyMCE размыто, как упоминалось в многочисленных сообщениях SO, а также на сайте tinyMCE:
tinyMCE.dom.Event.add(ed.getDoc(), 'blur', onBlur);
Однако я заметил, что это событие запускается, даже когда пользователь нажимает кнопку на панели инструментов tinyMCE (например, жирный шрифт, курсив, подчеркивание). Есть ли способ предотвратить это. Я пробовал несколько разных решений для проверки того, чтобы увидеть целевой элемент, по которому щелкнули, но не нашел ничего, что работало бы одинаково во всех браузерах.
Пытался:
function onBlur(e) {
if($(e.target.activeElement).hasClass('mceIcon')) return;
// do something
}
function onBlur(e) {
if($(e.target.activeElement).parents('#' + ed.editorContainer).length > 0) return;
// do something
}
Кроме того, я заметил, что это, похоже, специфическая ошибка IE8 (возможно, и других версий IE). Вот JSFiddle, показывающий поведение: http://jsfiddle.net/klinden/8rs4j Консоль регистрирует все экземпляры размытия, вызываемого.