Как установить фокус элемента textarea TinyMCE? - PullRequest
24 голосов
/ 06 февраля 2010

Я использую TinyMCE для текстовой области на странице, но она плохо воспроизводится в порядке табуляции других элементов.

Я могу использовать следующий код для захвата при выходе из первого элемента:

$('#title').live('keypress', function (e) {
   if(e.keyCode == 9) {
       alert('tabbed out');
   }
});

Как мне установить фокус на редактор TinyMCE?

Ответы [ 13 ]

0 голосов
/ 19 февраля 2018

Это работает для меня (TinyMCE версия 4.7.6):

tinymce.activeEditor.fire("focus")
0 голосов
/ 28 июля 2016

Я использую следующую функцию для фокусировки редактора с thinyMCE Это использует jQuery, но было бы легко удалить это и использовать document.querySelectorAll(). Используйте babel , если вам это нужно в es5.

let focusEditor = function(editorContainer) {
  let tinymce;
  if (/iPad|iPhone|iPod/.test(navigator.platform)) { return; }
  let id = $('.text-editor', editorContainer.innerHTML).first().attr('id');
  if (tinymce = window.tinyMCE.get(id)) {
    try {
      return tinymce.focus();
    } catch (error) {
      return tinymce.on('init', function() { return this.focus(); });
    }
  } else {
    return $(`#${id}`, editorContainer).focus();
  }
}

editorContainer - это любой элемент, окружающий текстовую область tinyMCE, например div с идентификатором 'text-container', который можно вызвать focusEditor($('#text-container')) или в React focusEditor(React.findDOMNode(this))

0 голосов
/ 12 мая 2016

Я получил его для работы с TinyMCE 4.x, используя следующее:

tinymce.EditorManager.get('id_of_editor_instance').focus();

...