1

デフォルトのツールバーが非表示になっているTinyMCEエディターがあり、それを置き換えるために独自のエディターを作成しました(office2007スタイルのcssプレビューで簡略化されています)。

コードを介したリンクの作成に問題があります(cmsによって生成されたページのリストを含む独自のjQuery UIウィンドウをロードします。これにより、コードへのURLが返されます)。

私のやり方は次のとおりです。

TinyMCEセットアップ構成に以下を追加します。

execcommand_callback : 'NEWCMS.editor.util.override'

したがって、実行されるコマンドはすべて、デフォルトの動作を実行する前にその関数を実行します。

その関数で、「mceLink」イベントかどうかを確認します(カスタムツールバーがコマンドを正しく送信するようになったので、問題はありません)。取得すると、ユーザーが選択したURLを返すウィンドウが表示されます。この時点で問題が発生します。

を使用して選択したノードを取得します

var inst = $('#jbcms_editor_textarea').tinymce();
var selectedNode = inst.selection.getNode();

しかし、予想どおり、段落のノードを返します。

私がする必要があるのは、選択範囲を<a>タグでラップして、そのノードを使用できるようにすること<a>ですが、これを行う方法を見つけることができません。APIを確認しましたが、探しているものが見つかりません。TinyMCEはそれを内部で使用する必要があるため、何かがあるはずです。(私もTinyMCEソースを調べてみましたが、それは私を超えています!)

誰かアイデアがありますか?

ありがとう

4

1 に答える 1

1

選択したコンテンツをタグにラップして、エディターに書き戻すことができます。

var inst = $('#jbcms_editor_textarea').tinymce();
var content = inst.selection.getContent();
inst.execCommand('insertHTML',false, '<a>'+content+'</a>'); #you may add attributes here too (like href)
于 2011-02-11T09:08:49.143 に答える