it-swarm.com.de

Probleme beim Erstellen eines tinyMCE-Plugins, das einen benutzerdefinierten Link erstellt

Ich arbeite an einem Plugin, das ähnlich wie der "Link" -Button auf tinyMCE funktioniert:

Der Benutzer hebt Text hervor -> drückt eine Taste -> gibt Text in ein Feld in einem Popup-Fenster ein -> sendet das Formular ab -> der Benutzer kehrt dann zum Editor zurück, wobei der hervorgehobene Text geändert wird.

Der hervorgehobene Text hat eine generierte URL als Link und eine hinzugefügte Klasse.

Ich habe die Schaltfläche in tinyMCE und wenn ich darauf klicke, wird das Popup-Fenster von thickbox mit meinem Formular angezeigt. Bei der Übermittlung geschieht jedoch nichts. Das Formular wird gesendet, aber das Fenster wird nicht geschlossen und hervorgehobener Text wird nicht in den Link eingefügt.

Ich betrachte wplink.js im Ordner "/wp-includes/js/wplink.js" als grobe Grundlage, aber es scheint nicht zu funktionieren.

Jede Hilfe wird geschätzt. Hier ist, was ich bisher habe. Hinweis: Für dieses Beispiel wird google.com als Test-URL verwendet.

jQuery(document).ready(function($){

    (function() {
        tinymce.create('tinymce.plugins.addTC', {

            init : function(ed, url){
                ed.addButton('addTC', {
                title : 'Insert Product Link',
                cmd: 'addTC_Link',
                image: "/wp-content/plugins/addtc/img/shopping_basket.png",
                onclick: function() {
                        tb_show( 'Insert Product Link', '/wp-content/plugins/addtc/addTC_link.php?&height=300&width=600&TB_iframe=true' );
                    }
                });
                $('#addTC_link-submit').click(function(e){
                    e.preventDefault();
                    var selected_text = ed.selection.getContent();
                    alert(selected_text);
                    var return_text = '';
                    var targetURL = "http://www.google.com";
                    return_text = '<a href="'+targetURL+'" class="targetURL">' + selected_text + '</span>';
                    ed.execCommand('mceInsertContent', 0, return_text);
                    tb_remove();
                });
            }
        });

        tinymce.PluginManager.add('addTC', tinymce.plugins.addTC);

    });

});
3
dcp3450

Ändere das:

ed.execCommand('mceInsertContent', 0, return_text);

Dazu:

ed.execCommand('mceInsertContent', false, return_text);

Das zweite Argument der Funktion tinyMCE.execCommand () ist ein boolescher Wert, der angibt, ob dem Benutzer eine Benutzeroberfläche angezeigt werden muss.

Referenz: http://www.tinymce.com/wiki.php/API3:method.tinymce.execCommand

1
Josh Lobe