我一直很难搞清楚这个问题。 我在eclipse中编写了一个插件,它启动了Eclipse的内部Web浏览器。到目前为止,我已经打开了内部网络浏览器:
IWebBrowser browser = PlatformUI.getWorkbench().getBrowserSupport().createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR, null,"Expert Viewer", "Validation");
browser.openURL(new URL(some url));
我想获取在浏览器中打开的当前页面的网址。我该如何做到这一点?
答案 0 :(得分:6)
使用IWorkbenchBrowserSupport
的问题在于您无法保证获得内部浏览器。如果内部浏览器不可用,或者工作台配置为使用它等,它可能会打开外部浏览器。
如果您知道自己总是需要内部浏览器(并且您只支持内部浏览器始终可用的平台),那么您可以放弃IWorkbenchBrowserSupport
界面并只使用org.eclipse.swt.browser.Browser
小部件。然后你可以连接一个LocationListener
,例如:
Browser browser = new Browser(parent, SWT.NONE);
browser.addLocationListener(new LocationListener() {
public void changing(LocationEvent event)
{
System.out.println("Navigating to: " + event.location);
}
public void changed(LocationEvent event)
{
System.out.println("Location is: " + event.location);
}
});