Ext-JS Html编辑器获取所选文本

时间:2012-09-12 11:07:12

标签: button extjs toolbar html-editor

我正在尝试在HtmlEditor的ToolBar中插入一个按钮。按钮应通过鼠标或键盘选择文本,并在所选文本的开头添加“#”字符,以将其定位为网址。

据我所知,最好的解决方案是创建一个插件,用于将按钮添加到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
                }
            ]);
        }
    });

1 个答案:

答案 0 :(得分:0)

您可以像这样获取所选文字:window.getSelection()

这会给你一个Selection对象。如果您只想获取文字:window.getSelection().toString()

但是如果你想把粗体或其他东西做成,你需要检查选择是否在编辑器中。你需要的一切都在选择对象中。

=&GT;更正:htmlEditor使用iframe,您可以通过getWin函数获取iframe窗口。

请注意,这仅适用于现代浏览器(不是&lt; IE9),从您使用的旧版Ext版本来判断,这可能是您的问题...但是有IE的解决方法。

more info