Как добавить дескриптор выбора в медиа-виджет?

#javascript #ckeditor #ckeditor5

#javascript #ckeditor #ckeditor5

Вопрос:

Я хочу настроить существующий медиа-виджет для CK Editor5. Я хочу добавить дескриптор выбора в медиа-виджет, чтобы упростить выбор. С виджетами это обычно можно сделать, передав параметр hasSelectionHandler: true функции toWidget() . Когда я пытаюсь сделать это с медиа-виджетом, дескриптор не добавляется. При дальнейшей проверке я обнаружил, что обратный вызов для создания UIElement в функции addSelectionHandler() никогда не вызывается. У кого-нибудь есть решение здесь?

Ответ №1:

Извините за очень краткий ответ, но у меня мало времени, и я надеюсь, что это все равно поможет.

Переход hasSelectionHandler к toWidget() заставляет его выполнять эту функцию: https://github.com/ckeditor/ckeditor5-widget/blob/f68917cea2a58c5c1830788821ba8923f4c7c82d/src/utils.js#L362-L381.

Функция встраивания мультимедиа не использует эту опцию, поэтому дескриптор не добавляется в виджет.

Вы можете изменить это по крайней мере двумя способами:

  • Вы можете добавить поздний обратный вызов (с низким приоритетом) DowncastDispatcher#insert и расширить элемент встраивания мультимедиа, созданный стандартной функцией.
  • Или вы можете просто разветвить функцию встраивания мультимедиа и использовать hasSelectionHandler опцию: D