Как отключить всплывающее меню TinyMCE 5 на пустой строке?

Как можно удалить контекстное меню в TinyMCE 5.5, которое появляется на пустой строке при настройке редактора?
Изображение к вопросу
  • 26 января 2024 г. 9:38
Ответы на вопрос 1
Чтобы отключить контекстное меню (context menu) в TinyMCE версии 5.5 и выше, вам нужно будет изменить конфигурацию при инициализации редактора. Вам нужно просто установить параметр `contextmenu` в значение `false` или не указывать его, поскольку по умолчанию контекстное меню включено.

Ниже приведен пример кода, который инициализирует TinyMCE без контекстного меню:

```javascript
tinymce.init({
  selector: '#mytextarea', // селектор элемента, к которому применяется TinyMCE
  plugins: [
    // перечислите необходимые плагины, но не включайте 'contextmenu', если вы хотите его отключить
  ],
  // другие параметры конфигурации...
  contextmenu: false // отключаем контекстное меню
});
```

Если вам нужно отключить контекстное меню только для пустых строк, а не полностью его убирать из редактора, вам потребуется более сложная настройка. К сожалению, TinyMCE по умолчанию не предоставляет прямую настройку для этой задачи, но вы можете применить пользовательский обработчик событий для достижения желаемого результата.

Примерно это может выглядеть так:

```javascript
tinymce.init({
  selector: '#mytextarea',
  // Остальная конфигурация...
  setup: function(editor) {
    editor.on('contextmenu', function(e) {
      var node = editor.selection.getNode();
      if (node && node.textContent.trim() === '') {
        // Если узел пуст, предотвратите показ контекстного меню
        e.preventDefault();
      }
    });
  }
});
```
Этот фрагмент кода использует пользовательский обработчик события `contextmenu`, чтобы проверять содержимое текущего узла (то есть, находится ли курсор на пустой строке). Если узел является пустым, событие `e.preventDefault()` прерывает обработку события и предотвращает отображение контекстного меню.
Похожие вопросы