2

TinyMCE の jQuery バージョンにこのプラグインを実装しようとしています。

http://www.tinymce.com/tryit/menu_button.php

この例では、プラグインが TinyMCE で読み込まれていますが、jQuery では機能しません。

私がやりたいことは、別の TinyMCE プラグインとして作成することですが、それを達成する方法がわかりません。TinyMCE を使用したプラグイン作成のチュートリアルはすべてダイアログ ウィンドウに関するものですが、カーソルがある場所に追加される小さなスニペットのドロップダウン メニューが必要なだけなので、それは私が必要としているものではありません。

このようなツールバーのドロップダウンを作成する方法を示す例を誰か教えてもらえますか? 私は狂ったようにGoogleを調べましたが、リモートで似たようなものを見つけることができません.PHPでコンテンツを生成する必要があるため、上に投稿した例は技術的にはプラグインではありません.

4

1 に答える 1

4

この作業はそれほど簡単ではありません(これも苦労しなければなりませんでした)。独自のカスタムプラグインの1つで関数createControlを設定する必要があります。私はあなたに正しい方向を向けるべきである私自身のプラグインの1つのいくつかのコードをあなたに見せます

    /**
     * Creates control instances based in the incomming name. This method is normally not
     * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
     * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
     * method can be used to create those.
     *
     * @param {String} n Name of the control to create.
     * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
     * @return {tinymce.ui.Control} New control instance or null if no control was created.
     */
    // Creates a custom listbox
    createControl: function(n, cm) {

        switch (n) {
            // you may define more than one listbox here!
            // make sure this string is in your buttonconfig
            case 'my_new_listbox':

                var listboxIdPart = 'my_new_listbox';

                // Listbox erzeugen
                var ctrl = cm.createListBox(listboxIdPart, {
                title : 'Title',

                    // v could be 'value1_here' or "value2_here", it isbest to use simple numers as values
                    //need to specify what shall happen depending on the value
                  onselect : function(v) {

                    if (v == 0){
                        return;
                    }
                    else {
                                              // alert('value choosen:' + v)
                                              // your actions here
                      return;
                      }                     
                  }
                }); // closing bracket

                                    // Add entries to the dropdown
                ctrl.add('entry1', 'value1_here');
                ctrl.add('entry2', 'value2_here');
                ctrl.add('entry3', 'value3_here');

                // Return new listbox
                return ctrl;
        }
        return null;
    },
于 2012-07-18T10:16:07.783 に答える