Pagedown Editor inserttimagedialog крючок
Я создал свой собственный хук insertImageDialog, позволяющий загружать файлы прямо в редакторе.
$('div#insertImageDialog input[type=file]').ajaxfileupload({
action: $file.attr('data-action'),
onStart: function() {
$loader.show();
},
onComplete: function(response) {
$loader.hide();
if (response.success) {
callback(response.imagePath); // <---- oO
dialogClose();
} else {
alert(response.message);
$file.val('');
}
}
});
Это отлично работает, когда я в первый раз вставляю изображение.
Каждый раз после этого происходит сбой со следующим исключением:
Uncaught TypeError: Невозможно вызвать метод 'removeChild' со значением null Markdown.Editor.js:1683 commandProto.doLinkOrImage.linkEnteredCallback Markdown.Editor.js:1683 self.initMarkdownEditor.editor.hooks.set.$. Ajaxfileupte.on
Загрузка отлично работает вне редактора, поэтому я могу только думать, что это какая-то проблема с обратным вызовом.
Большую часть дня тяну меня за волосы.
1 ответ
Решение
Вопрос был в два раза
- Я не осознавал, что ловушка вызывается каждый раз, когда пользователь нажимает кнопку изображения. Это означало, что я на самом деле настраивал несколько обработчиков "изменения" для загрузки файла.
- Плагин загрузки, который я использовал, ожидал, что обработчик будет зарегистрирован один раз (даже если мы его очистим).
Я задокументировал полное рабочее решение в своем блоге.