0

HtmlEditorのツールバーにボタンを挿入しようとしています。ボタンは、マウスまたはキーボードで選択されたテキストを取得し、その選択されたテキストの先頭に「#」文字を追加して、URLとして検索する必要があります。

私が理解しているように、最善の解決策は、HTMLエディターのツールバーにボタンを追加するためのプラグインを作成することです。作成コードを見つけましたが、問題は次のとおりです。選択したテキストを取得するにはどうすればよいですか?Ext-jsバージョン2.2

そして、htmlエディターのツールバーボタンのプラグインを作成するためのコードがあります。

Ext.ns('Ext.ux.form.HtmlEditor');

    Ext.ux.form.HtmlEditor.NewLine = Ext.extend(Ext.util.Observable, {
        init:function (cmp) {
            this.cmp = cmp;
            this.cmp.on('render', this.onRender, this);
        },
        onRender:function () {
            this.cmp.getToolbar().addButton([
                {
                    iconCls:'newline', //your iconCls here
                    handler:function () {
                        this.cmp.insertAtCursor('<br>&nbsp;');

                    },
                    scope:this
                }
            ]);
        }
    });
4

1 に答える 1

0

選択したテキストは次のように取得できます。window.getSelection()

これにより、Selection オブジェクトが得られます。テキストのみを取得する場合:window.getSelection().toString()

ただし、太字にしたい場合は、選択範囲がエディター内にあるかどうかを確認する必要があります。そのために必要なものはすべて選択オブジェクト内にあります。

=> 訂正: htmlEditor は、 getWin関数によって iframe ウィンドウを取得できる iframe を使用します。

これは、使用しているレガシー Ext バージョンから判断すると、最新のブラウザー (< IE9 ではない) のみであることに注意してください。これは問題になる可能性がありますが、IE には回避策があります。

より詳しい情報

于 2012-09-12T12:18:36.477 に答える