Крошечное событие фокусировки textarea? - PullRequest
5 голосов
/ 09 января 2012

Я работаю над существующим проектом. Я должен обнаружить событие tinyMCE focusout/blur, чтобы автоматически сохранить его через AJAX. Я нашел следующий существующий рабочий код:

// reinit tinymce
$($("#chapterBill div:.module-container")[indexAfter]).find('textarea').each(function(i){
   editorId = $(this).attr('id');
   tinymce.EditorManager.execCommand('mceAddControl',true, editorId);
});

Может кто-нибудь сказать мне, как захватить событие tinyMCE textarea focusout/blur?

Спасибо

Ответы [ 2 ]

5 голосов
/ 10 января 2012

Вы не хотите захватывать фокус / размытие текстовой области.Tinymce скрывает прежнюю текстовую область и создает приемлемый iframe, в который вы можете вводить / редактировать контент.Этот контент время от времени записывается в прежнюю скрытую текстовую область (на основе событий).

Чтобы захватить фокусировку / размытие в редакторе, необходимо установить обработчик для этого в редакторе iframe.

Поместите этот код в свою учетную запись init

setup : function(ed) {
    ed.onInit.add(function(ed, evt) {
        tinymce.dom.Event.add(ed.getDoc(), 'blur', function(e) {
            // Do something when the editor window is blured.
            alert('blur!!!');
        });
    });
},
0 голосов
/ 13 апреля 2015

Я тоже работал над решением для динамического сохранения контента tinyMCE через AJAX.Во многих ответах указывается установить эту опцию в init, однако это удобство было недоступно для меня из-за того, что код использовался в нескольких системах.Мне потребовалось решение для конкретной страницы, которое я смог реализовать следующим образом:

$( window ).load(function(){
    tinymce.get('id').on('blur', function(e) {
        var content = tinymce.get('id');
        console.log(content);
    });
});

с id в качестве атрибута id, установленного для вашего элемента textarea.

...