2012-12-13 7 views
5

Ich versuche, den Rückgabewert einer JavaScript-Funktion zu erhalten, die ich geschrieben habe. Ich kann es mit einer sehr komplizierten Methode mit Zuhörern tun, aber ich möchte Eclipse Browser.evaluate Methode verwenden.Gibt es eine einfache Möglichkeit, die JavaScript-Ausgabe in Java (mit Eclipse) zu erhalten?

Als Spielzeug Problem, habe ich den folgenden Code in einer Java-Datei:

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

wo this.browser in einer Klasse erstellt wird org.eclipse.ui.part.EditorPart in der überschriebenen Funktion erstreckt 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... 
} 

Anstelle von result, das eine Java-Zeichenfolge mit dem Inhalt "Hello World" ist, ist es null. Benutzt ich diese Methode falsch oder ist sie kaputt?

Antwort

3

Sie haben einen Wert in JavaScript zurückgeben:

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

Arbeiten für mich.

Verwandte Themen