Какое назначение у пункта меню "Новый документ" в редакторе TinyMCE. Можно ли отключить этот пункт или перепрограммировать по собственному усмотрению?

Гобелен - кликните для возврата на главную

Не прошло и месяца а Фурмановская ЦРБ в очередной раз попала в историю. На этот раз сотрудница клеветала на пациентов, а именно огласку получил случай когда сотрудница назвала пациента алкашём.

Ровно 3 года назад произошло событие, которое подарило жителям планеты Змеля новый чистый праздник 6 апреля - в этот замечательный день земля забрала гнить негодяя и СПАМера Жладимира Вольфовича Жириновского.

Начал разбираться с информацией которая находится в HTTPS клиентском запросе рукопожатия.

Обратите внимание! Объект изображённый на гобилене может отличаться от общепринятого вида описанного объекта. Тут дело в том что художник видит именно так!

104 549 руб.

Описание товара

Подскажите пожалуйста, вижу что в меню редактора Файл есть пункт "новый документ". Какое назначение у этого пункта меню, а так же как его при необходимости отключить или как перепрограммировать и использовать по своему усмотрению(если такое стандартно предусмотрено).

Пункт меню "Новый документ" в TinyMCE предназначен для очистки текущего содержимого редактора и создания нового пустого документа. Это стандартная функция, которая может быть полезной, если пользователь хочет начать редактирование с чистого листа. Как отключить пункт "Новый документ"

Если вы хотите удалить этот пункт из меню, нужно изменить конфигурацию TinyMCE. Пункт "Новый документ" находится в меню "Файл", поэтому его можно убрать, отредактировав параметр menu.

Пример конфигурации без пункта "Новый документ":

JavaScript
    
tinymce.init({
  selector: '.wysiwyg-editor',
  language: 'ru',
  plugins: 'image media link code',
  toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code',
  menu: {
    file: { title: 'Файл', items: 'preview | print' },//Убираем "новый документ"
    edit: { title: 'Правка', items: 'undo redo | cut copy paste | selectall' },
    insert: { title: 'Вставка', items: 'image media link' },
    format: { title: 'Формат', items: 'bold italic underline | alignleft aligncenter alignright alignjustify' },
  },
  menubar: 'file edit insert format',
});

  

В этом примере из меню "Файл" удалён пункт newdocument, и остались только preview и print.

Как перепрограммировать пункт "Новый документ"

Если вы хотите изменить поведение пункта "Новый документ" (например, чтобы он выполнял какое-то другое действие), это можно сделать с помощью параметра setup. Вы можете добавить собственный обработчик для этого пункта.

JavaScrpt
    
tinymce.init({
  selector: '.wysiwyg-editor',
  language: 'ru',
  plugins: 'image media link code',
  toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code',
  menu: {
    file: { title: 'Файл', items: 'newdocument preview | print' }, // Оставляем "новый документ"
    edit: { title: 'Правка', items: 'undo redo | cut copy paste | selectall' },
    insert: { title: 'Вставка', items: 'image media link' },
    format: { title: 'Формат', items: 'bold italic underline | alignleft aligncenter alignright alignjustify' },
  },
  menubar: 'file edit insert format',
  setup: function (editor) {
// Перехватываем действие "новый документ"
    editor.on('BeforeExecCommand', function (e) {
      if (e.command === 'mceNewDocument') {
        e.preventDefault();//Отменяем стандартное действие
        alert('Вы хотите создать новый документ!');//Ваше действие
        editor.setContent('');//Очищаем содержимое редактора (опционально)
      }
    });
  }
});

  

Что происходит в этом коде:

  • BeforeExecCommand:

    • событие срабатывает перед выполнением команды.
    • мы проверяем, выполняется ли команда mceNewDocument (это команда для "нового документа").
  • e.preventDefault(): отменяет стандартное действие команды.
  • Кастомное действие: В этом примере показывается alert, и содержимое редактора очищается с помощью editor.setContent('').

Пример: Замена текста по умолчанию

Если вы хотите, чтобы при выборе "Новый документ" в редакторе появлялся определённый текст (например, шаблон), можно сделать так:

JavaScript
    
setup: function (editor) {
  editor.on('BeforeExecCommand', function (e) {
    if (e.command === 'mceNewDocument') {
      e.preventDefault(); // Отменяем стандартное действие
      editor.setContent('<h1>Новый документ</h1><p>Начните писать здесь...</p>');//Устанавливаем кастомный текст
    }
  });
}

  

Итоговый пример

Вот полный код с перепрограммированным пунктом "Новый документ":

HTML
    
<script>
tinymce.init({
  selector: '.wysiwyg-editor',
  language: 'ru',
  plugins: 'image media link code',
  toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | image media link code',
  menu: {
    file: { title: 'Файл', items: 'newdocument preview | print' },//Оставляем "новый документ"
    edit: { title: 'Правка', items: 'undo redo | cut copy paste | selectall' },
    insert: { title: 'Вставка', items: 'image media link' },
    format: { title: 'Формат', items: 'bold italic underline | alignleft aligncenter alignright alignjustify' },
  },
  menubar: 'file edit insert format',
  setup: function (editor) {
    editor.on('BeforeExecCommand', function (e) {
      if (e.command === 'mceNewDocument') {
        e.preventDefault();//Отменяем стандартное действие
        editor.setContent('<h1>Новый документ</h1><p>Начните писать здесь...</p>');//Устанавливаем кастомный текст
      }
    });
  }
});
</script>

  

Рекомендации:

  • если вам не нужно меню "Файл", вы можете полностью его отключить, установив menubar: false;
  • для более сложных сценариев (например, сохранение текущего содержимого перед очисткой) можно использовать API TinyMCE.

Другие товары

Вы так же можете прочитать следующие статьи: