web-dev-qa-db-de.com

Benutzerdefinierter TinyMCE-Dialog mit Auswahlfeld funktioniert nicht

Für ein Thema füge ich Wordpress 'TinyMCE mit ed.addButton ein benutzerdefiniertes Menü hinzu.

Jetzt haben einige dieser Menüpunkte mehr oder weniger ausgefeilte Optionen, und ich dachte, ich würde die benutzerdefinierte Dialogfunktion von TinyMCE verwenden, damit der Benutzer diese ausfüllt. Funktioniert bisher gut mit einfachen Textfeldern, aber sobald ich versuche, ein Auswahlfeld zu verwenden, funktioniert es nicht mehr.

Der Code sieht folgendermaßen aus:

ed.addButton('mybutton', {
    type: 'menubutton',
    text: 'My Button',
    icon: false,
    menu: [
        {
            text: 'Bootstrap Well',
            onclick: function () {
                ed.windowManager.open({
                    title: 'Bootstrap Well',
                    body: [
                        {type: 'selectbox', name: 'size', label: 'Size', options: ['small', 'normal', 'large']}
                    ],
                    onsubmit: function (e) {
                        var selected = ed.selection.getContent(),
                                       size = e.data.size;

                        console.log(e.data);

                        ed.insertContent('[well size="' + size + '"]' + selected + '[/well]');
                    }
            });
        }
    }]

Der Dialog scheint kein Problem zu sein, die Auswahlbox ist da, kein Problem. Wenn ich den Dialog abschicke, erhalte ich ein Ereignisobjekt in meiner Funktion onsubmit und das Datenattribut enthält ein Objekt mit einem Schlüssel "Größe", aber der Wert des Schlüssels ist immer eine leere Zeichenfolge.

Was mache ich hier falsch?

1
Sorcy

Versuchen

type: 'listbox', 
values: [{text: 'small'}, {text: 'normal'}, {text: 'large'}]

Für Details: https://github.com/tinymce/tinymce/blob/master/js/tinymce/plugins/link/plugin.js

Ich habe das gleiche Problem festgestellt, als ich select2 im Dialogfeld verwenden möchte. Alle Plugins verwenden Listbox. Meine Vermutung ist, dass sie immer Listbox anstelle von Selectbox verwenden. Und der Handler für Selectbox ist kaputt.

1
WofloW