私は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);
});
});
これを変更してください。
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コマンド