Java Browser.evaluate()方法显示错误
我已经使用SWTAPI编写了一个简单的Java程序。我在应用程序中实例化了一个浏览器,并尝试使用Java Browser.evaluate()方法显示错误,java,javascript,eclipse,swt,Java,Javascript,Eclipse,Swt,我已经使用SWTAPI编写了一个简单的Java程序。我在应用程序中实例化了一个浏览器,并尝试使用browser.evaluate()方法。但它向我显示了以下错误 类型浏览器未定义方法求值(字符串) 这是我的完整程序 import java.awt.event.MouseEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.SWTError; import org.eclipse.swt.custom.
browser.evaluate()
方法。但它向我显示了以下错误
类型浏览器未定义方法求值(字符串)
这是我的完整程序
import java.awt.event.MouseEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.printing.*;
import org.eclipse.swt.events.*;
public class example {
public static void main(String args[])
{
final Display display = new Display();
final Shell shell=new Shell(display);
shell.setText("Informatica Business Glossary Desktop");
final Browser browser = new Browser(shell,SWT.NONE);
final 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";
//final Browser browser;
if(browser!=null)
{
browser.setUrl("https://www.google.com");
}
browser.addMouseListener(new MouseListener(){
@Override
public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e) {
String selection = (String)browser .evaluate(SCRIPT01);
// TODO Auto-generated method stub
}
@Override
public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseUp(org.eclipse.swt.events.MouseEvent e) {
String selection = (String) browser.evaluate(SCRIPT01);
// TODO Auto-generated method stub
}
});
}
}
我正在使用EclipseJuno浏览器类的
evaluate
方法的JavaDoc说它是为SWT版本3.5添加的,所以您至少需要该版本
Eclipse Luna的最新版本是我没有得到任何错误。那么为什么只有我得到它呢?根据JavaDoc
evaluate
不在早期版本的Browser
检查您是否有最新版本的SWT jar。具体来说,您需要SWT 3.5或更高版本(4.4是当前版本).我已经从这里下载了jar文件,这不是最新的吗?
String selection = (String) browser.evaluate(SCRIPT01);