Pagedown编辑器insertimagedialog钩子

Ben*_*ter 5 javascript markdown pagedown

我已经创建了自己的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('');
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

这在我第一次插入图像时工作正常.

每次之后,它都会失败并出现以下异常:

未捕获的TypeError:无法调用null的方法'removeChild'Markdown.Editor.js:1683 commandProto.doLinkOrImage.linkEnteredCallback Markdown.Editor.js:1683 self.initMarkdownEditor.editor.hooks.set.$.ajaxfileupload.onComplete

上传在编辑器之外工作正常,所以我只能认为这是回调的某种范围问题.

在一天的大部分时间里,我一直把头发拉过来.

Ben*_*ter 2

问题有两个方面

  1. 我没有意识到每次用户单击图像按钮时都会调用挂钩。这意味着我实际上正在为文件上传设置多个“更改”处理程序。
  2. 我使用的上传插件期望处理程序注册一次(即使我们清除它)。

我已在我的博客上记录了完整的工作解决方案。