有没有一种简单的方法在Java中获取JavaScript输出(使用Eclipse)?

5
我正在尝试获取我编写的JavaScript函数的返回值。我可以使用涉及监听器的非常复杂的方法来实现它,但我想使用Eclipse的Browser.evaluate方法。Browser.evaluate 作为一个玩具问题,我在Java文件中有以下代码:
Object result = this.browser.evaluate("new String(\"Hello World\")");

在扩展org.eclipse.ui.part.EditorPart类并重写createPartControl函数内,创建了属性this.browser:
public void createPartControl(Composite parent) {
  // Create the browser instance and have it 
  this.browser = new Browser(parent, SWT.NONE);
  this.browser.addFocusListener(new FocusAdapter() {
    @Override
    public void focusGained(FocusEvent e) {
      SomeEditor.this.getSite().getPage().activate(SomeEditor.this);
    }
  });
  new ErrorReporter(this.browser);
  this.browser.setUrl(Activator.getResourceURL("html/java-shim.html").toString());
  ...more stuff snipped...
}

然而,与其说 result 是一个包含内容为“Hello World”的Java字符串,不如说它是 null。我是在错误地使用这个方法吗,还是它本身就有问题?

1个回答

3
在JavaScript中,你必须返回一个值:
Object result = browser.evaluate("return 'Hello World'");

运行正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接