IEでScriptErrorsSuppressed が false でもエラーを出さない方法

 

WebBrowser コントロールに表示する Web ページをデバッグするには、このプロパティを false に設定します。 これは、このコントロールを使用してアプリケーションに Web ベースのコントロールとスクリプト コードを追加するときに役立ちます。 コントロールを汎用ブラウザーとして使用する場合は、あまり有効ではありません。 アプリケーションのデバッグが完了したら、このプロパティを true に設定して、スクリプト エラーが表示されないようにします。

メモメモ

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

——————————————————————————–

他のダイアログ ボックスは表示した状態で、スクリプト エラーが表示されないようにする方法を次のコード例に示します。 この例では、ScriptErrorsSuppressed プロパティを false に設定して、ダイアログ ボックスが表示されるようにします。 HtmlWindow.Error イベントのハンドラーによって、エラーが表示されなくなります。 このイベントにアクセスできるのはドキュメントの読み込みが終了した場合のみであるため、このハンドラーは DocumentCompleted イベント ハンドラーでアタッチされます。

C#

VB

コピー

 

// Hides script errors without hiding other dialog boxes.
private void SuppressScriptErrorsOnly(WebBrowser browser)
{
// Ensure that ScriptErrorsSuppressed is set to false.
browser.ScriptErrorsSuppressed = false;

// Handle DocumentCompleted to gain access to the Document object.
browser.DocumentCompleted +=
new WebBrowserDocumentCompletedEventHandler(
browser_DocumentCompleted);
}

private void browser_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
((WebBrowser)sender).Document.Window.Error +=
new HtmlElementErrorEventHandler(Window_Error);
}

private void Window_Error(object sender,
HtmlElementErrorEventArgs e)
{
// Ignore the error and suppress the error dialog box.
e.Handled = true;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です