Javascript 选择GWT中的文本

Javascript 选择GWT中的文本,javascript,gwt,java-native-interface,Javascript,Gwt,Java Native Interface,我想在GWT中选择一个文本: 我有一种方法可以在Firefox中选择文本,但在Chrome中会出现错误: public native void markThisText(Element elem) /*-{ if ($doc.selection && $doc.selection.createRange) { var range = $doc.selection.createRange(); range.moveTo

我想在GWT中选择一个文本:

我有一种方法可以在Firefox中选择文本,但在Chrome中会出现错误:

public native void markThisText(Element elem) /*-{
        if ($doc.selection && $doc.selection.createRange) {
            var range = $doc.selection.createRange();
            range.moveToElementText(elem);
            range.select();
        } else if ($doc.createRange && $wnd.getSelection) {
            var range = $doc.createRange();
            range.selectNode(elem);
            var selection = $wnd.getSelection();
            selection.removeAllRanges();
            selection.addRange(range);
        }
}-*/;
错误日志:

Caused by: com.google.gwt.core.client.JavaScriptException: (INVALID_NODE_TYPE_ERR):  
INVALID_NODE_TYPE_ERR: DOM Range Exception 2    at    com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248
)   at   
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)   at  
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)     at 
com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)     at 
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)

你知道为什么吗?谢谢

您可能会发现以下内容很有帮助:


您的示例选择了一个税种,而不是选择一个文本,不是吗?我有一个“无法读取属性'getSelection'”的未定义“对不起,我误解了这个问题。看看类似的问题-它有一个很好的答案。这对我不是很有帮助…正如我在网上读到的,对于范围为.setNode的webkit浏览器(safari和chrome)有一个问题。。。