JavaScript in the SWT Browser widget
At the Eclipse Summit Europe I listened to a talk of Boris Bokowski about Eclipse and the Web.
Among other things I learned that you can execute JavaScript directly on the SWT Browser Widget and I wanted to give a tiny example for this.
This Eclipse view will for example load my webpage and then execute a tiny JavaScript (alert(“1”);) in the browser.
package de.vogella.swtbrowser;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.ProgressEvent;
import org.eclipse.swt.browser.ProgressListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
public class View extends ViewPart {
public static final String ID = "de.vogella.swtbrowser.view";
public void createPartControl(Composite parent) {
final Browser b = new Browser(parent, SWT.NONE);
b.setUrl("www.vogella.de");
b.addProgressListener(new ProgressListener() {
@Override public void completed(ProgressEvent event) {
System.out.println("Page loaded");
System.out.println(b.execute("alert(\\"1\\");"));
}
@Override public void changed(ProgressEvent event) { } });
}
/\*\* \* Passing the focus request to the viewer's control. \*/
public void setFocus() { }
}
Thanks to Boris for the great talk.