title: How to talk to a Javascript function from SWT
body: <p>My HTML file has a javascript function xxx_return(), which will return a string value. Is there any way i can take this value from Java layer?.</p>
  
  <p>I am using SWT shell to display this html. Does SWT carry any feature to get the return values of a script function?</p>
  
  <p>edit:</p>
  
  <p>My code is something like below:
      package test.html.simulation;</p>
  
  <pre><code>import org.eclipse.swt.SWT;
  import org.eclipse.swt.SWTException;
  import org.eclipse.swt.browser.Browser;
  import org.eclipse.swt.widgets.Display;
  import org.eclipse.swt.widgets.Shell;
  
  public class BrowserExample{
  public static void main(String[] args) 
  {
    Display display = new Display();
    final Shell shell = new Shell(display);
    String html="";
    Object ob=null;
      shell.setText("Browser Example");
      shell.setSize(500, 350);
  
          final Browser browser = new Browser(shell, SWT.NONE);
          browser.setBounds(5, 75, 600, 400);
  
          browser.setUrl("http://localhost/test/tryxml.html");
  
          shell.open();
          //System.out.println(browser.getUrl());
          //try
          {
          html=(String)browser.evaluate("returnHTML();");
          }/*catch(SWTException e)
          {
              System.out.println(e.getMessage());
  
          }*/
          System.out.println(html);
  
          while (!shell.isDisposed()) {
              if (!display.readAndDispatch())
                  display.sleep();
              }
  
          display.dispose();
  
  
  }
  </code></pre>
  
  <p>This code gives me an SWT Exception like Object expected:</p>
  
  <pre><code>Exception in thread "main" org.eclipse.swt.SWTException: Object expected
  at org.eclipse.swt.browser.WebBrowser$EvaluateFunction.function(Unknown Source)
  at org.eclipse.swt.browser.WebSite.Invoke(Unknown Source)
  at org.eclipse.swt.browser.WebSite$7.method6(Unknown Source)
  at org.eclipse.swt.internal.ole.win32.COMObject.callback6(Unknown Source)
  at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
  at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(Unknown Source)
  at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
  at org.eclipse.swt.ole.win32.OleAutomation.invoke(Unknown Source)
  at org.eclipse.swt.browser.IE.execute(Unknown Source)
  at org.eclipse.swt.browser.WebBrowser.evaluate(Unknown Source)
  at org.eclipse.swt.browser.Browser.evaluate(Unknown Source)
  at test.html.simulation.BrowserExample.main(BrowserExample.java:29)
  </code></pre>
  
  <p>In the java script i have written a function in the script tag like:</p>
  
  <pre><code>&lt;script&gt;
  function returnHTML()
    {
     var str=document.body.innerHTML;
     //alert(str);
     return str;
    }
  &lt;/script&gt;
  </code></pre>
  
  <p>Can anyone find the error in this?. I don't understand where it hits the error.</p>
  
  <p>Thanks.</p>