5

我正在尝试获取我编写的 JavaScript 函数的返回值。我可以使用涉及侦听器的非常复杂的方法来做到这一点,但我想使用 Eclipse 的Browser.evaluate方法。

作为一个玩具问题,我在 Java 文件中有以下代码:

Object result = this.browser.evaluate("new String(\"Hello World\")");

this.browserorg.eclipse.ui.part.EditorPart在覆盖函数中扩展的类中创建createPartControl

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. 我是错误地使用了这个方法,还是它坏了?

4

1 回答 1

3

您必须在 JavaScript 中返回一个值:

Object result = browser.evaluate("return 'Hello World'");

为我工作。

于 2012-12-13T15:58:07.190 回答