4

わかりました、これは私を殺しています。TinyMCE エディターにカスタム ボタンを追加する WordPress プラグインを作成しましたが、ボタンによってトリガーされるオプション ポップアップ ウィンドウが、WP にネイティブな同様のポップアップ ウィンドウとは異なる方法で読み込まれることを除いて、うまく機能します...

具体的には、WordPress の TinyMCE ツールバーの上にある [メディアの追加] ボタンをクリックすると、[メディアの追加] ウィンドウが素敵なシックボックス モーダルで開きます。また、出力を取得するボタン HTML が URL href 値を持つアンカー タグでラップされているため、iframe にも読み込まれます。

<a href="http://.../wp-admin/media-upload.php?post_id=916&amp;TB_iframe=1&amp;width=640&amp;height=354" class="thickbox add_media" id="content-add_media" title="Add Media" onclick="return false;">

しかし、ボタンの HTML が出力されると、アンカー タグの href 値は「javascript:;」になります。

<a role="button" id="content_companyinfo" href="javascript:;" class="mceButton mceButtonEnabled mce_companyinfo" onmousedown="return false;" onclick="return false;" aria-labelledby="content_companyinfo_voice" title="Insert company info fields" tabindex="-1">

これが私の TinyMCE エディター プラグイン コードです: http://pastebin.com/kuQJRHJR

そして、メディアの追加ボタン用のWPコア TinyMCE エディター プラグインは次のとおりです。

TinyMCE の addButton 関数では、href 値を設定できません。addCommand を使用して作成したカスタム コマンド関数にリンクする cmd 値のみを設定できます。

addButton関数の設定でクラス「thickbox」をボタンに追加しようとしましたが、通常のポップアップウィンドウの背後にthickboxモーダルを作成するという奇妙な効果がありました。

これを正しい方法で行う方法を知っている人はいますか?前もって感謝します!

4

1 に答える 1

5
  1. プラグインの editor_plugin.jsinit関数に、次の関数を追加します。

    ed.onInit.add(function(ed, evt) {
     // make that the interactions window will open in a thickbox by adding the button the right attributes
           jQuery('#content_myInteractions').addClass('thickbox');
    });
    

    「content_myInteractions」をボタン ID に変更します。

  2. ボタンのコマンドtb_show()で、thickbox で必要なコンテンツを開くために使用します。

    tb_show('myInteractions', '#TB_inline?height=300&width=400&inlineId=interactions_wrapper');
    

入力したdivからthickboxコンテンツをjQuery(インラインコンテンツ)でページの下部に取得しました。iframe を使用することもできます。これはthickbox.netに役立つかもしれません

于 2013-01-31T12:34:36.587 に答える