web-dev-qa-db-ja.com

カスタムリンクを作成するtinyMCEプラグインの作成に関する問題

私はtinyMCEの "link"ボタンに似たプラグインを開発しています。

ユーザーはテキストをハイライトする - >ボタンを押す - > thickboxポップアップのボックスにテキストを入力する - >フォームを送信する - >ユーザーはハイライトされたテキストを変更してエディタに戻る。

強調表示されたテキストには、リンクとして生成されたURLと追加されたクラスがあります。

私はtinyMCEのボタンを持っていて、クリックするとthickboxのポップアップが私のフォームで表示されます。ただし、送信しても何も起こりません。フォームは送信されますが、ウィンドウは閉じず、ハイライト表示されたテキストはリンクになりません。

おおまかな根拠として、 "/ wp-include/js/wplink.js"フォルダにあるwplink.jsを見ていますが、うまくいかないようです。

任意の助けは大歓迎です。これが私のこれまでのところです。注:この例では、google.comがテストURLとして使用されています。

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

これを変更してください。

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

これに:

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

TinyMCE.execCommand()関数の2番目の引数は、UIをユーザーに提示する必要があるかどうかを示すブール値です。

参照: http://www.tinymce.com/wiki.php/API3:method.tinymce.execコマンド

1
Josh Lobe