2011-09-30 4 views
3

私はこれを考え出すのに苦労しています。 Eclipseの内部Webブラウザを起動するプラグインをEclipseで作成しています。これまでのところ私は、内部のWebブラウザを開いてきました:Eclipseの内部WebブラウザからURLを取得してください

IWebBrowser browser = PlatformUI.getWorkbench().getBrowserSupport().createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR, null,"Expert Viewer", "Validation"); 
browser.openURL(new URL(some url)); 

と私はブラウザで開かれている現在のページのURLを取得したいです。私はそれをどのように達成するのですか?

+0

SWTブラウザを使用せずにこれを実行する方法はありますか。を接続できますか? – RoflcoptrException

答えて

6

IWorkbenchBrowserSupportを使用する際の問題は、内部のブラウザを元に戻すことが保証されないことです。内部ブラウ​​ザが利用できない場合や、ワークベンチが使用するように設定されている場合は、外部ブラウザを開くことがあります。

内部ブラウ​​ザが常に必要な場合はブラウザは常に利用可能です)、IWorkbenchBrowserSupportインターフェースを避けて、単にorg.eclipse.swt.browser.Browserウィジェットを使用することができます。

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); 
    } 
}); 
+0

ありがとう! swtブラウザを使用することも私の第2の考えでした。 swtブラウザのウィジェットが新しいスタンド、すなわちhtml5、様々なプラグインをサポートしているかどうかを知っていますか? – Alternativc

+0

これはプラットフォームによって異なります.WindowsではこれがIEです(したがってインストールされたIEのバージョンです)。 SafariにするとLinuxでこれはFirefoxやWebkit(Eclipseのバージョンとあなたがインストールしたブラウザによって異なります)です。 Javascriptでいくつかのチェックを実行し( 'Browser#evaluate'を使って)、私たちが進めることができるかどうかを知るブラウザの機能を判断します。 –

+0

ありがとうエドワードもう一度! – Alternativc

関連する問題