WebBrowsers\誇餅調廾りツ廸餅するには?


こまった  2004-02-03 09:29:42  No: 81796  IP: [192.*.*.*]

いつもお世話になっています。
VB6のWebBrowserでローカルに保存してあるWebページを表示したのですが、
保存してあるページの性質上どうしてもスクリプトエラーが発生してしまいます。
エラーメッセージを出力させないように、または、出力されても自動で
確認ボタンを操作して消してしまいたいのですが、スクリプトエラーを
なんらかのイベントでトラップすることなどは可能でしょうか?
IEの詳細設定でスクリプトデバッグを使用しないはonで、スクリプト毎に通知しない
はoffに設定してあります。
IEはver6.0でOSはW2Kです。
よろしくお願いします。

編集 削除
こまった  2004-02-03 09:32:08  No: 81797  IP: [192.*.*.*]

すみません、タイトルがバケてしまいました。
WebBrowserでスクリプトエラーをトラップするには?

です。

編集 削除
魔界の仮面弁士  2004-02-03 20:04:45  No: 81798  IP: [192.*.*.*]

「スクリプトエラー」の内容によっては、NavigateComplete2イベント発生時に、pDisp.Document.parentWindow を捕らえ、windowオブジェクトのonerrorイベントで True を返すようにする事で、標準のエラーダイアログが表示されないようになります。

============= Form1 ===========
Option Explicit

Private WithEvents c As Class1

Private Sub c_onerror(ByVal description As Variant, ByVal URL As Variant, ByVal line As Variant, Handled As OLE_CANCELBOOL)
    Debug.Print description, URL, line
    Handled = True
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Set c = New Class1
    Set pDisp.Document.parentWindow.onerror = c
End Sub

Private Sub Command1_Click()
    Me.WebBrowser1.Navigate2 "c:\test.html"
End Sub


============= Class1 ===========
Option Explicit

Public Event onerror( _
    ByVal description As Variant, _
    ByVal URL As Variant, _
    ByVal line As Variant)

'[ツール]-[プロシージャ属性]で、このFunctionのプロシージャIDを
'『(既定値)』に変更しておいてください。
Public Function onerror( _
    ByVal description As Variant, _
    ByVal URL As Variant, _
    ByVal line As Variant) As Variant

    RaiseEvent onerror(description, URL, line)
    onerror = True
End Function

編集 削除
魔界の仮面弁士  2004-02-03 20:28:03  No: 81799  IP: [192.*.*.*]

間違い。m(_ _)m
以下のように差し替えてください。

> ============= Class1 ===========
Option Explicit

Public Event onerror( _
    ByVal description As Variant, _
    ByVal URL As Variant, _
    ByVal line As Variant, _
    ByRef Handled As OLE_CANCELBOOL)

'[ツール]-[プロシージャ属性]で、このFunctionのプロシージャIDを
'『(既定値)』に変更しておいてください。
Public Function onerror_( _
    ByVal description As Variant, _
    ByVal URL As Variant, _
    ByVal line As Variant) As Variant

    Dim Handled As OLE_CANCELBOOL
    Handled = False
    RaiseEvent onerror(description, URL, line, Handled)
    onerror_ = Handled
End Function

編集 削除