JavaScriptでエラーが発生すると、標準だと以下のようなダイアログが表示されます。
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に公開していますので、良かったら参考にどうぞ。
WebBrowserSampleソリューションのSuppressJavaScriptErrorBrowserプロジェクトにあります。
今回はここまで。
それではまた!