@ckeditor/ckeditor5-clipboard
не предлагает кнопки копирования, вырезания и вставки.Вы правы в том, что основная причина в том, что Ctrl + C / V / X широко известны.Но есть и другие причины - эти кнопки занимают драгоценное место на панели инструментов и ... вы все равно не можете вставить с помощью такой кнопки.
Например, проверьте, что будет делать CKEditor 4, если вы запуститедействие кнопки вставки (на самом деле вы можете видеть, что такой кнопки тоже нет на панели инструментов; мне пришлось вызывать ее с консоли):
Это потому, что доступ к буферу обмена ограничен по соображениям безопасности.Вы можете программно копировать / вырезать вещи (помещать содержимое в буфер обмена), но вы не можете вставить.В противном случае каждый веб-сайт может прочитать ваши скопированные данные.Не весело.
В любом случае, копировать / вырезать можно.И вы можете отобразить некоторые предупреждения, когда пользователь нажимает кнопку вставки.Если вы хотите этого, то вам нужно реализовать простой плагин:
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
function ClipboardButtons( editor ) {
addButton( 'copy', 'Copy' );
addButton( 'cut', 'Cut' );
addButton( 'paste', 'Paste' );
function addButton( action, label ) {
editor.ui.componentFactory.add( action, locale => {
const view = new ButtonView( locale );
view.set( {
label: label,
// Or use the 'icon' property.
withText: true,
tooltip: true
} );
view.on( 'execute', () => {
if ( action === 'paste' ) {
alert( 'Sorry man, no can do!' );
} else {
document.execCommand( action );
}
} );
return view;
} );
}
}
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Essentials, Paragraph, ClipboardButtons ],
toolbar: [
'copy', 'cut', 'paste'
]
} )
.then( editor => {
} )
.catch( err => {
console.error( err.stack );
} );
Подробнее о реализации плагинов можно прочитать в Кратком руководстве по CKEditor 5 Framework .
Вы должны достичь чего-то подобного: