Java 在SWT浏览器小部件中获取选定文本

Java 在SWT浏览器小部件中获取选定文本,java,browser,swt,eclipse-rcp,Java,Browser,Swt,Eclipse Rcp,我正在我的项目中实现SWT浏览器以显示网页。 在此浏览器中显示网页后,如果用户选择了特定文本,如何获取所选文本?请帮我举个合适的例子也许这会帮到你 此链接提出了使用StatusTextListener拦截文本选择的想法。下面是StatusTextListener实现的一个片段 // Status Text Listener Interface. public void changed (StatusTextEvent evt) { String text = evt.text;

我正在我的项目中实现SWT浏览器以显示网页。 在此浏览器中显示网页后,如果用户选择了特定文本,如何获取所选文本?请帮我举个合适的例子

也许这会帮到你

此链接提出了使用StatusTextListener拦截文本选择的想法。下面是StatusTextListener实现的一个片段

// Status Text Listener Interface. 
public void changed (StatusTextEvent evt) { 
    String text = evt.text; 
    if ((text != null) && (text.length() > 0)) { 
        if ((! text.equalsIgnoreCase ("Done")) && (! text.equals (lastStatusText))) { 
            System.err.println (evt.text); 
            lastStatusText = text; 
        } 
    } 
} // End of changed(). 
也许这会帮到你

此链接提出了使用StatusTextListener拦截文本选择的想法。下面是StatusTextListener实现的一个片段

// Status Text Listener Interface. 
public void changed (StatusTextEvent evt) { 
    String text = evt.text; 
    if ((text != null) && (text.length() > 0)) { 
        if ((! text.equalsIgnoreCase ("Done")) && (! text.equals (lastStatusText))) { 
            System.err.println (evt.text); 
            lastStatusText = text; 
        } 
    } 
} // End of changed(). 

这似乎对我很有效。试试看

static String SCRIPT01 = "var html = \"\";"+
"if (typeof window.getSelection != \"undefined\") {"+
    "var sel = window.getSelection();"+
    "if (sel.rangeCount) {"+
        "var container = document.createElement(\"div\");"+
        "for (var i = 0, len = sel.rangeCount; i < len; ++i) {"+
            "container.appendChild(sel.getRangeAt(i).cloneContents());"+
        "}"+
        "html = container.innerHTML;"+
    "}"+
"} else if (typeof document.selection != \"undefined\") {"+
    "if (document.selection.type == \"Text\") {"+
        "html = document.selection.createRange().htmlText;"+
    "}" +
"}" +
"return html";

browser.addMouseListener(new MouseListener() {
    @Override
    public void mouseUp(MouseEvent arg0) {
        String selection = (String) browser.evaluate(SCRIPT01);
    }

    @Override
    public void mouseDown(MouseEvent arg0) {
    }

    @Override
    public void mouseDoubleClick(MouseEvent arg0) {
        String selection = (String) browser.evaluate(SCRIPT01);
    }
});
静态字符串SCRIPT01=“var html=\”\”;“+
“如果(typeof window.getSelection!=”未定义“”{”+
“var sel=window.getSelection();”+
“如果(选择范围计数){”+
“var container=document.createElement(\“div\”)+
对于(变量i=0,len=sel.rangeCount;i
这似乎对我很有效。试试看

static String SCRIPT01 = "var html = \"\";"+
"if (typeof window.getSelection != \"undefined\") {"+
    "var sel = window.getSelection();"+
    "if (sel.rangeCount) {"+
        "var container = document.createElement(\"div\");"+
        "for (var i = 0, len = sel.rangeCount; i < len; ++i) {"+
            "container.appendChild(sel.getRangeAt(i).cloneContents());"+
        "}"+
        "html = container.innerHTML;"+
    "}"+
"} else if (typeof document.selection != \"undefined\") {"+
    "if (document.selection.type == \"Text\") {"+
        "html = document.selection.createRange().htmlText;"+
    "}" +
"}" +
"return html";

browser.addMouseListener(new MouseListener() {
    @Override
    public void mouseUp(MouseEvent arg0) {
        String selection = (String) browser.evaluate(SCRIPT01);
    }

    @Override
    public void mouseDown(MouseEvent arg0) {
    }

    @Override
    public void mouseDoubleClick(MouseEvent arg0) {
        String selection = (String) browser.evaluate(SCRIPT01);
    }
});
静态字符串SCRIPT01=“var html=\”\”;“+
“如果(typeof window.getSelection!=”未定义“”{”+
“var sel=window.getSelection();”+
“如果(选择范围计数){”+
“var container=document.createElement(\“div\”)+
对于(变量i=0,len=sel.rangeCount;i
不要只发布链接。当链接无法访问时,您的答案将无效。发布链接和至少一个摘要。我正在尝试这段代码。这只提供超链接文本,而不是鼠标选择纯文本。我也尝试了代码,我也只获得超链接文本。我需要这个纯文本。添加了新的答案,而不是把它和一个评论弄糟。看到新的答案,也许它会对你有用。永远不要只是发布一个链接。当链接无法访问时,您的答案将无效。发布链接和至少一个摘要。我正在尝试这段代码。这只提供超链接文本,而不是鼠标选择纯文本。我也尝试了代码,我也只获得超链接文本。我需要这个纯文本。添加了新的答案,而不是把它和一个评论弄糟。看到新的答案,也许它会对你有用。