WebBrowserコントロールでスクリプトエラーを防ぐ

C#でWebBrowserコントロール使うアプリケーション作ってたらちょっと翻弄されたのでメモ。

最初は、MSDNの日本語版の情報を見て

スクリプト エラーのダイアログを表示する場合は true。それ以外の場合は false。既定値は false です。

とあったので、
WebBrowser.ScriptErrorsSuppressedプロパティをfalseにすればいいんだと思ったけど、それでもスクリプトのエラーダイアログが出続ける・・・

そこでさらに調べてみると、

わんくま同盟さんのBBSページに誤訳じゃね?との書き込みを発見。

本家英語版MSDNページに行くと、

true if the control does not display its dialog boxes; otherwise, false. The default is false.

ってあったOTL

ということでtrueに設定すればいいみたい。

ちなみに、バージョンの新しい.NET Framework 3以上の翻訳版を見たら

コントロールがそのダイアログ ボックスを表示しない場合は true。それ以外の場合は false。既定値は false です。

という具合にちゃんと翻訳されてましたとさw

んで、メモのところに

ScriptErrorsSuppressed が true に設定されている場合、WebBrowser コントロールは、スクリプト エラーだけでなく、基になる ActiveX コントロールに起因するダイアログ ボックスを非表示にします。場合によっては、ブラウザのセキュリティ設定やユーザー ログインに使用されるようなダイアログ ボックスが表示されているときに、スクリプト エラーを表示しないようにする必要があります。この場合は、ScriptErrorsSuppressed を false に設定し、HtmlWindow.Error イベントのハンドラでスクリプト エラーが表示されないようにします。詳細については、このトピックのコード例を参照してください。

というのがあったのでちょっと勉強になった。

コメント