2012-05-31 14 views
5

Stworzyłem własny hook insertImageDialog, aby umożliwić przesyłanie plików bezpośrednio w edytorze.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(''); 
        } 
       } 
      }); 

Działa to dobrze przy pierwszym wstawianiu obrazu.

Za każdym razem, gdy to się nie powiedzie z następującym wyjątkiem:

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

Zamieszczanie działa poprawnie poza edytorem, więc mogę tylko myśleć, że jest jakiś problem z scoping zwrotnego.

Wyciągam włosy ponad to przez większość dnia.

Odpowiedz

2

Problem był dwukrotny

  1. Nie wiedziałem, hak pobiera nazywane każdy razem, gdy użytkownik kliknie przycisk obrazu. Oznaczało to, że faktycznie przygotowałem wiele programów obsługi "zmiany" do przesłania pliku.
  2. Załadowana wtyczka, której używałam, oczekiwała, że ​​program obsługi zostanie zarejestrowany jeden raz (nawet jeśli wyczyścimy go).

Udokumentowałem pełne robocze rozwiązanie na moim blog.

+0

Przeczytałem Twój wpis, ale nadal mam problemy. Dostaję, że hak jest wywoływany za każdym razem, ale dlaczego to skonfigurowało wiele "zmian" procedur obsługi? –