Я пытаюсь сделать кнопку загрузки внешнего изображения так:
Теперь у меня уже есть images_upload_handler, определенный для TinyMCE для его функции загрузки изображений (она уже работает, если я нажимаю кнопку загрузки изображения по умолчанию на панели инструментов). Как я могу обратиться к этой функции обработчика, нажав эту внешнюю кнопку?
Я сделал отдельный компонент для кнопки загрузки внешнего изображения. А мой компонент TinyMCE выглядит так (обратите внимание на images_upload_handler):
<TinyMCE
className = {this.props.className || ''}
ref = {this.props.editorRef}
content = {this.props.value}
config = {{
setup: (editor) => {
images_upload_handler: function (blobInfo, success, failure, progress) {
// error out if max is reached
const { maxAttachmentSizeBytes, attachments } = this.props;
const file = blobInfo.blob();
if (file.size > maxAttachmentSizeBytes || _.sum(_.map(attachments, f => isNaN(f.fileSize) ? 0 : parseInt(f.fileSize))) + file.size > maxAttachmentSizeBytes) {
failure(I18n.t('Your email provider limits attachments to: ') + getFormattedSize(maxAttachmentSizeBytes));
return;
}
window.tinymce.activeEditor._skinLoaded = true;
let xhr, formData;
const config = getConfig(this.props.env);
}).catch(() => {
window.tinymce.activeEditor.setContent(window.tinymce.activeEditor.getContent().replace(/<img.*?src = "(data:|blob:).*?(>|/>)/g, ''));
failure('You are not logged in.');
});
}.bind(this),
........



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Сделал это работать. Наконец-то я нашел путь к функции onClick для кнопки загрузки изображения: Window.tinyMCE.activeEditor.buttons.image.onclick.
{window.tinymce.activeEditor && this.props.showImageUpload &&
<div className = "attachments-button" onClick = {window.tinyMCE.activeEditor.buttons.image.onclick}>
<ImageIcon fill='#666666'/> <span id = "attachment-label">{this.props.showLabel ? 'Upload an image' : ''}</span>
</div>}