2012-05-31 5 views
5

エディタ内でファイルを直接アップロードできるように独自のinsertImageDialogフックを作成しました。Pagedown Editor insertimagedialog hook

  $('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: Cannot call method 'removeChild' of null Markdown.Editor.js:1683 commandProto.doLinkOrImage.linkEnteredCallback Markdown.Editor.js:1683 self.initMarkdownEditor.editor.hooks.set.$.ajaxfileupload.onComplete

アップロードは、エディタの罰金外に動作します。

ほとんどの日、私の髪を引っ張ってきました。

答えて

2

問題は、私はフックは、ユーザーが画像ボタンをクリックごと時間呼び出さ実現していない2倍

  1. ました。これは、実際にはファイルのアップロード用に複数の「変更」ハンドラを設定していることを意味していました。
  2. 私が使用していたアップロードプラグインは、ハンドラが一度登録されると予想されます(クリアしても)。

私はblogの完全な作業の解決方法を文書化しました。

+0

あなたの投稿を読みましたが、まだ問題があります。私は、フックが毎回呼ばれることになるが、なぜそれが複数の '変更'ハンドラを設定するのだろうか? –