2012-12-13 12 views
5

Próbuję uzyskać wartość zwracaną przez funkcję JavaScript, którą napisałem. Mogę to zrobić za pomocą bardzo skomplikowanej metody z udziałem słuchaczy, ale chcę użyć metody Eclipse'a o nazwie Browser.evaluate.Czy istnieje prosty sposób uzyskania wyników JavaScript w Javie (przy użyciu Eclipse)?

jako problem zabawkami, mam następujący kod w pliku Java:

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

gdzie this.browser jest tworzony w klasie rozciągającej org.eclipse.ui.part.EditorPart w zastąpionej funkcji 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... 
} 

Jednak zamiast result będącego ciągiem Java z zawartością "Hello World", jest to null. Czy używam tej metody nieprawidłowo, czy jest ona uszkodzona?

Odpowiedz

3

Trzeba zwrócić wartość w JavaScript:

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

pracuje dla mnie.

Powiązane problemy