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 使用 iframe,您可以通过getWin函数获取 iframe 窗口。

请注意,这仅适用于现代浏览器(而不是 < IE9),从您使用的旧 Ext 版本来看,这可能对您来说是个问题……但 IE 有一些解决方法。

更多信息

于 2012-09-12T12:18:36.477 回答