2013-05-02 34 views
5

Kürzlich habe ich versucht, TinyMce 4.0 in meine Webanwendung zu integrieren. Ich möchte ein Klick-Ereignis einfügen, wenn ich auf das Textfeld klicke, aber es funktioniert nicht. Ich habe auf der offiziellen Dokumentation sieht, und ich habe den folgenden Code versucht:Click Event auf TinyMCE 4.0

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

Es gibt einen Fehler, die angezeigt werden: „Typeerror: ed.onClick ist nicht definiert“.

Also, ich habe versucht, direkt ein Onclick-Ereignis auf dem iframe zu setzen, aber es ist ein Fehler:

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

Haben Sie Ideen, wie dies zu tun?

+0

Wo sind Sie Test (Browser)? – Amit

+0

Hallo, ich habe auf der letzten Version von Google Chrome und der letzten Version von Firefox getestet. – Scipius2012

Antwort

0

Hmm, könnte man

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

aktualisieren versuchen: Sieht aus wie es keinen Editor zu diesem Zeitpunkt initialisiert ist. Versuchen

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

Vielen Dank für Ihre Antwort! Ich habe Ihren Code ausprobiert, aber ich habe den folgenden Fehler: "ReferenceError: ed ist nicht definiert". Ich habe sogar versucht (zu testen), "ed" zu ersetzen "window.tinyMCE.get (" idOfMyTextarea ")" und ich habe wieder den vorherigen Fehler. – Scipius2012

+0

siehe meinen aktualisierten Beitrag – Thariama

+0

Ich habe Ihren Code versucht: es funktioniert gut für die Version 3, aber nicht für die Version 4. Wenn ich mit der Version 4 versuche, habe ich den folgenden Fehler: "TypeError: ed.onInit ist undefiniert ". Der Fehler tritt nur bei der Version 4 auf! – Scipius2012

12

TinyMCE v4 wurde von v3 änderten sich die Dinge - versuchen:

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

Wichtig zu erwähnen, dass der Parameter 'ed' in Funktion für 'klicken 'enthält keine Editorinstanz. Dies war mein Fall für die 'init' Ereignisbehandlung. Um auf die Editorinstanz zuzugreifen (Ersteller des Ereignisses), verwenden Sie - 'this', zB: ' editor.on ('init', function() { var doc = dieses.contentDocument; }); ' – psulek

+0

Danke - aktualisiert um das zu reflektieren –