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

Ben*_*ing 5 javascript java eclipse

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

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

Object result = this.browser.evaluate("new String(\"Hello World\")");
Run Code Online (Sandbox Code Playgroud)

其中this.browser是在一个org.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...
}
Run Code Online (Sandbox Code Playgroud)

但是,它不是result一个内容为"Hello World"的Java String null.我是否错误地使用此方法,或者它是否已损坏?

Udo*_*ski 3

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

Object result = browser.evaluate("return 'Hello World'");
Run Code Online (Sandbox Code Playgroud)

对我有用。