2012-12-13 38 views
5

我想獲得我寫的JavaScript函數的返回值。我可以使用涉及監聽器的非常複雜的方法來實現,但我想使用Eclipse的Browser.evaluate方法。有沒有一種簡單的方法來獲取Java中的JavaScript輸出(使用Eclipse)?

作爲玩具的問題,我有一個Java文件下面的代碼:

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

其中this.browser是在重寫的功能擴展createPartControl一個org.eclipse.ui.part.EditorPart類創建:

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。我是否錯誤地使用了這種方法,或者它是否被破壞?

回答

3

你必須在JavaScript中返回一個值:

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

爲我工作。

相關問題