问一个SHDocVwCtl.WebBrowser的问题
我的代码是让webbrowser根据弹出窗口的地址来决定是否让网页的弹出窗口弹出,看了很多资料,似乎webbrowser不能捕获要弹出窗口的url,所以决定使用Web_V1_NewWindow来完成这个任务。正常情况使用Web_V1_NewWindow可以按需要弹出或者不弹出窗口,但只要该窗口中其它代码出现调试错误提示,web_V1_NewWindow的功能似乎就失效了,不能按代码的判断需要来抑制窗口的弹出(我是使用ACCESS2003编写的程序,在非编译状态下运行)。问题究竟出在哪里呢?有没有办法只用webbrowser而不用Web_V1_NewWindow来实现我需要的功能呢?
代码如下:
dim WithEvents Web_V1 As SHDocVw.WebBrowser_V1
Private Sub Form_Load()
'------------------------------------------------------------------
'在模块顶部定义了 Dim WithEvents Web_V1 As SHDocVw.WebBrowser_V1
'载入Web_V1,WebBrowser1有弹出新窗口时就可用响应
Set Web_V1 = WebBrowser1.Object
'--------------------------------
End Sub
Private Sub Web_V1_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, _
PostData As Variant, ByVal Headers As String, Processed As Boolean)
'如果URL中包含了"alert"使用ie打开,否则使用WebBrowser1打开
If InStr(URL, "alert") > 0 Then
Processed = False '从ie弹出
Else
Processed = True '不弹出
Debug.Print URL
WebBrowser1.Navigate URL
End If
End Sub