как переопределить Ctrl + V в TinyMCE - PullRequest
2 голосов
/ 23 сентября 2008

Мне нужно очистить HTML-код вставленного текста в TinyMCE, передав его веб-службе и затем вернув его в текстовую область. Поэтому мне нужно переопределить Ctrl + V в TinyMCE, чтобы захватить текст, выполнить фоновый запрос и по возвращении продолжить с любым обработчиком вставки для TinyMCE. Прежде всего, где находится обработчик Ctrl + V от TinyMCE, и есть ли неразрушающий способ переопределить его? (вместо изменения исходного кода)

Ответы [ 2 ]

3 голосов
/ 23 сентября 2008

Вы можете написать плагин, который обрабатывает событие ctrl + v и пропускает его, либо изменяет плагин вставки. Следующий код находится на plugins / paste / editor_plugin.js и обрабатывает событие ctrl + v.

  handleEvent : function(e) {
          // Force paste dialog if non IE browser
          if (!tinyMCE.isRealIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false) && e.ctrlKey && e.keyCode == 86 && e.type == "keydown") {
             window.setTimeout('tinyMCE.selectedInstance.execCommand("mcePasteText",true)', 1);
             return tinyMCE.cancelEvent(e);
          }

          return true;
       },

Вот некоторая дополнительная информация о создании плагинов для tinyMCE .

0 голосов
/ 08 ноября 2018

Tiny Editor имеет плагин, который называется "paste".

При его использовании вы можете определить две функции в разделе init

/**
 * This option enables you to modify the pasted content BEFORE it gets
 * inserted into the editor.
 */
paste_preprocess : function(plugin, args)
{
     //Replace empty styles
    args.content = args.content.replace(/<style><\/style>/gi, "");
}

и

/**
 * This option enables you to modify the pasted content before it gets inserted
 * into the editor ,but after it's been parsed into a DOM structure.
 *
 * @param plugin
 * @param args
 */
paste_postprocess : function(plugin, args) {
    var paste_content= args.node.innerHTML;
    console.log('Node:');
    console.log(args.node);

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