首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得GWT HTML选定的文本?

如何获得GWT HTML选定的文本?
EN

Stack Overflow用户
提问于 2013-12-05 14:12:59
回答 3查看 2.1K关注 0票数 0

我需要一个Widget来正确地显示包含HTML元素的文本。因此,我像那样使用了GWT HTML。

代码语言:javascript
运行
复制
HTML text= new HTML(new SafeHtml() {

            @Override
            public String asString() {

                return "<b>TestText</b>";
            }
        });

现在,我想选择由该小部件显示的文本,并以某种方式获得字符串。

我想右键单击标记的文本,并使用该字符串执行一些操作。

如果您的想法使用其他gwt小部件,我不会太专注于HTML小部件,这也没有问题。

我还可以访问Sencha GXT libarys。任何想法都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-05 16:07:46

我假设您希望用户选择文本,然后右击检索选定的文本。我说的对吗?我不记得在GWT中检索选定文本的任何方法,因此我会使用纯javascript。已经有a thread解释了如何使用javascript实现这一点,因此您可以获取该代码并将其包装在JSNI方法中:

代码语言:javascript
运行
复制
public class MyClass implements IsWidget {
    private final HTML text;

    public MyClass() {
        text = new HTML(SafeHtmlUtils.fromTrustedString("<b>Some text</b>"));
        text.addDomHandler(new ContextMenuHandler() {
            @Override
            public void onContextMenu(ContextMenuEvent event) {
                String test = getSelection();
                Window.alert(test);
            }
        }, ContextMenuEvent.getType());
    }

    private native String getSelection() /*-{
        var text = "";
        if ($wnd.getSelection) {
            text = $wnd.getSelection().toString();
        } else if ($doc.selection && $doc.selection.type != "Control") {
            text = $doc.selection.createRange().text;
        }
        return text;
    }-*/;

    @Override
    public Widget asWidget() {
        return text;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2013-12-05 15:22:24

你可以用这样的东西:

代码语言:javascript
运行
复制
final Label label = new Label("Some text");
label.addClickHandler(new ClickHandler() {          
        @Override
        public void onClick(ClickEvent event) {
                label.getElement().getStyle().setBackgroundColor("#ff0"); //sth. like select
                String txt = label.getText(); //get the String
            Window.alert(txt); //do sth. with text

        }
});

但它只适用于左键。如果必须使用右键单击,则可以使用本机JS代码。jQuery点击。不要使用b标签。它在HTML5中不受欢迎。

票数 0
EN

Stack Overflow用户

发布于 2013-12-11 12:44:35

实际上,我已经找到了一个GWT,它可以获得所选的文本。看这个https://code.google.com/p/gwt-selection/

在安装了柳条之后,我不得不

代码语言:javascript
运行
复制
String currentSelection = Selection.getBrowserRange().getText();

谢谢你的回答-你帮了我很多忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20402259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档