Обнаружение событий изменений в редакторе форматированного текста Wordpress Edit Post (tinyMCE) - PullRequest
2 голосов
/ 16 августа 2011

Как я могу определить, что в редакторе форматированного текста на странице редактирования сообщения произошли изменения?

Я хочу выполнить функцию, когда пользователь что-то набрал в текстовом редакторе (панели HTML и Visual).

РЕДАКТИРОВАНИЕ: Я выполнил это на панели HTML, связав событие jQuery keyup со скрытой текстовой областью, которую создает tinyMCE, но все же я не смог обнаружить пользовательский ввод на вкладке Visual.

Я использую Wordpress 3.2.1, и я знаю, что они используют tinyMCE для функциональности текстового редактора.

Похоже, что tinyMCE использует iframe для создания вкладки Visual в редакторе форматированного текста, поэтому я попробовал примеры, указанные здесь безрезультатно .

Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 09 июля 2015

Наконец я смог решить эту проблему, добавив следующий фрагмент кода:

<script type="text/javascript">
    jQuery(function ($) {
        // Was needed a timeout since RTE is not initialized when this code run.
        setTimeout(function () {
            for (var i = 0; i < tinymce.editors.length; i++) {
                tinymce.editors[i].onChange.add(function (ed, e) {
                    // Update HTML view textarea (that is the one used to send the data to server).
                    ed.save();
                });
            }
        }, 1000);
    });
</script>

Спасибо @ HarkályGergő за подсказку, чтобы решить этот вопрос:)

2 голосов
/ 16 августа 2011

Не уверен, как добавить это в WordPress, но с точки зрения TinyMCE, метод isDirty () в редакторе должен помочь.

Так что вы можете просто использовать

if (tinyMCE.activeEditor.isDirty()) {
  //Do something
}

чтобы проверить текущий активный редактор.WordPress может дать вам альтернативные способы доступа к экземпляру редактора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...