Tinymce.get и tinymce.activeEditor оба возвращают ноль - PullRequest
0 голосов
/ 10 мая 2019

У меня есть текстовая область tinymce в HTML: <textarea id="customer_notes"></textarea>

И в JS я пытаюсь получить доступ к этой текстовой области с помощью

tinymce.get('customer_notes').on("keyup", function(){ console.log("tiny"); })

ИЛИ

tinymce.activeEditor.on('keyup', function(){ console.log("keyup"); })

Однако оба возвращают ноль.Я понимаю, что может быть проблема с элементом, который еще не загружен на странице, и поэтому недоступен.

НО чуть выше любого оператора, который я пытаюсь, если я вывожу console.log(tinymce.editors);, он выводит массив, содержащий моиtextarea, с идентификатором "customer_notes".

0: {…}, id: "customer_notes", isNotDirty: true, plugins: {…}, …}ustomer_notes: eN { id: "customer_notes", isNotDirty: true, plugins: {…}, …} length: 1 __proto__: Array(0)

Я прочитал несколько других постов с этой проблемой, но ни одно из решений, похоже, не работает для меня.Один ответ предложил использовать tinymce.editors[0], но это не определено?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Если вы хотите захватить события, относящиеся к экземпляру TinyMCE, вы можете фактически настроить эти функции событий непосредственно в вашей функции init({}).

Вот пример:

http://fiddle.tinymce.com/7Hgaab

Вы увидите, что в init есть функция setup, и эта функция установки автоматически получает доступ кваш объект editor, чтобы вы могли настроить функцию события keyup в этой функции setup.

Код для просмотра в init({}):

setup: function (editor) {
  editor.on('keyup', function (e) {
    console.log('A key was pressed: ', e.keyCode); 
  });
}
0 голосов
/ 10 мая 2019

Ваш код работает нормально. Если вы можете поделиться всем своим HTML и JS, то, возможно, мы сможем точно определить причину проблемы. А пока вот рабочий пример, который, надеюсь, поможет вам в этом: JSFiddle .

HTML:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cloud.tinymce.com/5/tinymce.min.js"></script>
</head>
<body>
  <textarea id="customer_notes"></textarea>
</body>
</html>

JS:

$(function(){
  tinymce.init({ selector:'textarea' });

  tinymce.get('customer_notes').on("keyup", function(){
    console.log("tiny");
  });

  tinymce.activeEditor.on('keyup', function(){
    console.log("keyup");
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...