在GWT或smartGWT小部件或区域中修改富文本

在GWT或smartGWT小部件或区域中修改富文本,gwt,smartgwt,richtext,Gwt,Smartgwt,Richtext,我试图用HTML文本创建一个区域,这是GWT或SmartGWT中的DIV等价物 最初会显示一些纯文本。用户可以突出显示文本,只需按一个按钮,文本就会有一条线穿过,并变成红色。此外,用户还可以单击文本中的任意位置并键入新文本,新文本将显示下划线和绿色 我需要为每次修改以及新键入的文本等获取插入符号位置 GWT或SmartGWT中是否有小部件可以为我提供此类功能?目前,我有一个使用DIV并在单击时插入跨距的全javascript解决方案,但我想离开它。这是RichTextArea和RichTextT

我试图用HTML文本创建一个区域,这是GWT或SmartGWT中的DIV等价物

最初会显示一些纯文本。用户可以突出显示文本,只需按一个按钮,文本就会有一条线穿过,并变成红色。此外,用户还可以单击文本中的任意位置并键入新文本,新文本将显示下划线和绿色

我需要为每次修改以及新键入的文本等获取插入符号位置


GWT或SmartGWT中是否有小部件可以为我提供此类功能?目前,我有一个使用DIV并在单击时插入跨距的全javascript解决方案,但我想离开它。

这是RichTextArea和RichTextToolbar小部件的演示:

公开一个可以执行所需操作的格式化程序。因此,如果您已经有了按钮,只需在单击每个按钮时使用格式化程序即可

更新:

例如,如果要删除选定文本或更改其颜色,可以非常轻松地执行以下操作:

formatter.toggleStrikethrough();
formatter.setForeColor("#F00");
如果需要获取所选文本,可以使用以下方法:

private static native String getSelection(Element elem) /*-{
    var txt = "";
    var range;
    var parentElement;
    var container;

if (elem.contentWindow.getSelection) {
        txt = elem.contentWindow.getSelection();
} else if (elem.contentWindow.document.getSelection) {
        txt = elem.contentWindow.document.getSelection();
} else if (elem.contentWindow.document.selection) {
        range = elem.contentWindow.document.selection.createRange();
        txt = range.text;
}
return "" + txt;
}-*/;

也许你已经看过了,但是斯马尔格特也有一个。有一个演示

我从未使用过它,但有一些与字体相关的功能


返回的编辑器区域是一个画布,但您可以使用“插入符号位置”支持设置自己的组件。

这并不是我想要的。我需要能够准确插入符号的位置和输入的文字时,用户执行的行动。Spasibo za stol'bystryj otvet.有没有办法让我直接和你谈谈?如何仅对选定的文本应用划线?找不到示例。这只是当您想要更改选定文本的格式时调用的方法之一,与在所有RichText小部件中使用的方法相同。看看文档:干杯!