2012-12-13 4 views
5

Sto cercando di ottenere il valore di ritorno di una funzione JavaScript che ho scritto. Posso farlo usando un metodo molto complicato che coinvolge gli ascoltatori, ma sto volendo usare il metodo Browser.evaluate di Eclipse.C'è un modo semplice per ottenere l'output JavaScript in Java (usando Eclipse)?

Come un problema giocattolo, ho il seguente codice in un file Java:

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

dove this.browser viene creato in una classe che estende org.eclipse.ui.part.EditorPart nella funzione override 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... 
} 

Tuttavia, anziché result è una stringa Java con il contenuto "Hello World", è null. Sto usando questo metodo in modo errato o è rotto?

risposta

3

si deve restituire un valore in JavaScript:

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

lavori per me.

Problemi correlati