2009-02-26 3 views
1

Ich schreibe ein Plugin für TinyMCE, und ich möchte ListBox B abhängig von dem, was in Listbox A ausgewählt ist. Ich kann es so machen, die erste Auswahl in ListBox A füllt ListBox B, aber ich kann nicht machen Wählen Sie eine zweite Auswahl, löschen Sie ListBox B clean und füllen Sie ListBox B mit den neuen Elementen.TinyMCE Plugins: Listboxen

Ich habe versucht, nur Native ListBoxes und JQuery-Funktionen, aber JQuery kann sie nicht auf der Seite finden.

Danke!

Antwort

0

TinyMCE erstellt einen iFrame, der den zu bearbeitenden Inhalt enthält. Daher befinden sich die Listenfelder, nach denen Sie suchen, dort und nicht im Hauptdokument. Sie können die Funktion tinymce.get ('editor_id'). GetDoc() verwenden, um das Dokument vom iframe abzurufen (siehe http://tinymce.ephox.com/documentation/api/index.html#class_tinymce.Editor.html-getDoc). Wenn Sie Ihre Standard-JQuery-Funktionen auf dieses Dokument ausrichten, sollte es funktionieren.

Grüße,

Adrian Sutton.
http://tinymce.ephox.com

+0

falsch, die Benutzeroberfläche ist nicht innerhalb des iframe, der iframe i für den Inhalt nur verwendet, – Thariama

0

Hier ist ein Workaround, der für mich funktioniert. My List-Box hält Klassennamen (CssClass ist eine Variable, die einen einfachen String halten):

listbox = ed.controlManager.get('p_style'); // listboxname 
if (typeof listbox == "undefined") return; 

// after rendering, no new listbox elements can be entered -> workaround 
if (listbox && listbox.isMenuRendered) { 
    listbox.menu.destroy(); 
    listbox.isMenuRendered = false; 
    listbox.oldID = 0; 
} 

// class zu Listboxen hinzufügen 
if (listbox) 
    listbox.add(cssclass, cssclass);