2013-05-02 10 views
5

Ostatnio próbowałem zintegrować TinyMce 4.0 w mojej aplikacji internetowej. Chcę umieścić wydarzenie kliknięcia po kliknięciu na obszarze tekstu, ale to nie działa. Mam spojrzał na oficjalnej dokumentacji, a próbowałem następujący kod:Kliknij wydarzenie na TinyMCE 4.0

tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.onClick.add(function(ed, e) { 
      console.debug('Editor was clicked: ' + e.target.nodeName); 
     }); 
    } 

Istnieje błąd, który pojawia się: „TypeError: ed.onClick jest niezdefiniowana”.

Tak, starałem się umieścić bezpośrednio zdarzenie onclick na iframe, ale jest to awaria:

$("iframe").contents().bind('click', function(){ 
... 
}); 

Czy macie jakieś pomysły jak to zrobić?

+0

Gdzie jesteś testu (przeglądarka)? – Amit

+0

Witam, testowałem na ostatniej wersji Google Chrome i ostatniej wersji Firefoksa. – Scipius2012

Odpowiedz

0

Hmm, może spróbować

$(ed.getDoc()).bind('click', function(){ 
... 
}); 

Aktualizacja: Wygląda na to, nie ma redaktor inicjowane tym momencie. Spróbuj

setup : function(ed) { 
     ed.onInit.add(function(ed, e) { 
     ed.onClick.add(function(ed, e) { 
      console.debug('Editor was clicked: ' + e.target.nodeName); 
     }); 
     }); 
    } 
+0

Dziękuję za odpowiedź! Próbowałem twój kod, ale mam następujący błąd: "ReferenceError: ed nie jest zdefiniowany". Próbowałem nawet (aby przetestować), aby zamienić "ed" na "window.tinyMCE.get (" idOfMyTextarea ")" i ponownie wystąpił poprzedni błąd. – Scipius2012

+0

zobacz mój zaktualizowany post – Thariama

+0

Próbowałem twój kod: działa dobrze dla wersji 3, ale nie dla wersji 4. Kiedy próbuję z wersją 4, mam następujący błąd: "TypeError: ed.onInit jest niezdefiniowany ". Błąd pojawia się tylko w wersji 4! – Scipius2012

12

TinyMCE v4 zmieniła się rzeczy z v3 - spróbuj:

setup : function(ed) { 
    ed.on("click", function() { 
     alert("Editor Clicked! Element: " + this.target.nodeName); 
    }); 
}; 
+0

Ważne, aby wspomnieć o parametrze 'ed' w funkcji dla 'click "nie zawiera instancji edytora. Tak było w przypadku obsługi zdarzeń "init". Aby uzyskać dostęp do instancji edytora (twórcy zdarzenia), należy użyć słowa kluczowego 'this', np .: ' editor.on ('init', function() { var doc = this.contentDocument; }); ' – psulek

+0

Dzięki - zaktualizowano aby to odzwierciedlić –