Ckeditor 5 Как программно запускать копирование, вырезание, вставку событий - PullRequest
0 голосов
/ 28 декабря 2018

Я реализовал контекстное меню для ckeditor.Я вставил Copy, Cut, Paste пунктов меню.Я хочу вызвать события ckeditor dom и ожидать события, отслеживаемые слушателями ckeditor.Но я не знаю, как это сделать.

Я пытался запустить editor.editing.view.document.fire('cut').После этого в Clipboard.js, onCopyCut метод был запущен.Но data параметр был undefined.Как я могу отправить параметр данных и что я должен отправить в параметре данных?

1 Ответ

0 голосов
/ 07 января 2019

Невозможно сделать вставку с помощью пользовательской кнопки.По сути, доступ к собственным действиям копирования / вырезания / вставки возможен с помощью метода native document.execCommand():

document.execCommand( 'copy' );
document.execCommand( 'cut' );
document.execCommand( 'paste' );

Однако будут работать только операции копирования и вырезания.В целях безопасности вставка блокируется браузерами.

Поэтому операция вставки может быть запущена только нажатием клавиши или встроенной опцией «Вставить» (в контекстном меню или в строке меню).Вы не можете получить доступ к буферу обмена через ваше пользовательское контекстное меню сегодня (оно, вероятно, изменится в будущем).Вот почему CKEditor 5 не переопределяет собственное контекстное меню (в отличие, например, от CKEditor 4 или некоторых других редакторов).

PS.В Google Docs пользовательская кнопка «вставить» работает (в Chrome), потому что Chrome поставляется с предустановленной надстройкой Google Docs.Это хитрость Google, чтобы обойти упомянутую проблему ...

...