nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

WPFのWebBrowserでJavaScriptのエラーを抑止する

JavaScriptでエラーが発生すると、標準だと以下のようなダイアログが表示されます。

f:id:nuitsjp:20160625195058p:plain

FormsのWebBrowserだとプロパティを変更するだけですが、WPFだと少し分かり難いです。
本エントリーではWPFのWebBrowserでJavaScriptのエラーを抑止する方法を記載します。

方法は以下の通りです。

var axIWebBrowser2 = typeof(WebBrowser).GetProperty("AxIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
var comObj = axIWebBrowser2.GetValue(webBrowser, null);
comObj.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, comObj, new object[] { true });

上記のコードをInitializeComponent以降にでも実施すればOKです。
WebBrowserのインスタンスから公開されていないAxIWebBrowser2プロパティを取得し、そのSilentを呼び出してあげることで抑止できます。
簡単ですね。

一応動くコードをGithubに公開していますので、良かったら参考にどうぞ。

github.com

WebBrowserSampleソリューションのSuppressJavaScriptErrorBrowserプロジェクトにあります。

今回はここまで。
それではまた!