ниже приведен код для добавления пользовательской кнопки в CkEditor
@ViewChild('ckeditor') ckeditor: CKEditorComponent;
ngAfterViewInit(): void {
this._addImageUploadBtn();
}
_addImageUploadBtn() {
const editor = this.ckeditor && this.ckeditor.instance;
if (!editor) {
return;
}
var that = this;
editor.ui.addButton('uploadImage', {
icon: 'https://img.icons8.com/ios/50/000000/image.png',
label: 'Upload Image',
command: 'uploadImage',
toolbar: 'insert'
});
editor.addCommand('uploadImage', {
exec: function(editor: any) {
// Remove img input.
[].slice.apply(document.querySelectorAll('.ck-editor-upload-img')).forEach((img: any) => {
img.remove();
});
const input = document.createElement('input');
input.setAttribute('type', 'file');
input.setAttribute('class', 'ck-editor-upload-img');
input.style.display = 'none';
input.addEventListener('change', e => {
const file = (e.target as HTMLInputElement).files[0];
if (file) {
console.log(file);
// Do Stuff
}
},
false
);
document.body.appendChild(input);
input.click();
}
});
}
здесь вы получаете выбранный файл изображения, а также получаете пользовательский щелчок кнопки.