如何使用 WebBrowser 控件 浏览网页时屏蔽弹出的网页对话框!注意,不是弹出窗口,是网页对话框!
如题
弹出窗口一般是由window.open产生,这个可以解决,
但网页对话框是由showModalDialog产生,实在想不通怎么解决,望高手指点!
问题点数:100、回复次数:15Top
1 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2005-06-14 16:17:22 得分 60
这样就可以了
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim obj As HTMLDocument
Set obj = pDisp.Document
obj.parentWindow.execScript "function showModalDialog(){return;}"
End SubTop
2 楼sunnywq2004(fiona)回复于 2005-06-15 09:03:49 得分 5
关注,顺便问问,对于用window.confirm弹出的窗口怎么跳过Top
3 楼of123()回复于 2005-06-15 09:32:51 得分 10
这里有个问题,如果对话框的提问是“是否将此页作为默认网页”或“是否下载某某程序”,岂不是照单全收?Top
4 楼of123()回复于 2005-06-15 09:35:04 得分 0
是否可以考虑用 FindWindow 和 SendMessage API 来处理?Top
5 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2005-06-15 09:57:46 得分 0
使用函数重载的方法其实就跟API拦截差不多的道理,可以写个和原函数有一样参数列表的函数,这样就可以知道判断是否是我们需要拦截的函数,以及决定是否调用原函数
confirm函数也可以象上面那样弄的,只要把函数名改成confirm就可以了Top
6 楼xghim((︵-︵))回复于 2005-06-15 11:05:36 得分 5
在WebBrowse_DownloadBegin()
和
WebBrowse_DownloadComplete()
中加入
WebBrowse.Silent = True
这样试验一下啊,或许可以.
在设计那里更改成true无效,每次都自动换成false了.Top
7 楼sunnywq2004(fiona)回复于 2005-06-15 14:42:09 得分 0
Dim obj As HTMLDocument
编译-用户类型未定义Top
8 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2005-06-16 08:44:10 得分 0
引用Microsoft HTML Object LibraryTop
9 楼pjchuqi(初奇 ASP001.net)回复于 2005-06-16 16:43:43 得分 0
to supergreenbean(超级绿豆 - 要准备发芽了)
谢谢你的办法,我先试一下
另外是否有办法能把 of123() 所述的问题很好的屏弊?Top
10 楼pjchuqi(初奇 ASP001.net)回复于 2005-06-16 16:44:38 得分 0
to xghim(小飞)
你的方法是禁止显示脚本错误信息的,对这个没用Top
11 楼pjchuqi(初奇 ASP001.net)回复于 2005-06-20 20:06:50 得分 0
?Top
12 楼hhjjhjhj(大头)(http://office.9zp.com)回复于 2005-06-20 20:56:08 得分 0
对网页的html进行处理后再让它运行。
With Me.WebBrowser1
.Navigate "about:blank"
.Document.DesignMode = "on" '设计模式,不会运行script
.Document.Location = "http://www.abc.com/xx.html"
MsgBox "请等待网页加载完毕"
.Document.write Replace(.Document.documentElement.outerHTML, "some words", "")
.Document.DesignMode = "off"
End With
Top
13 楼pjchuqi(初奇 ASP001.net)回复于 2005-06-22 21:43:35 得分 0
to hhjjhjhj(大头)(想变胡萝卜^^)
如果不运行script的话,会影响到页面其它的正常脚本的运行啊
高手,还有没有更好的办法Top
14 楼hhjjhjhj(大头)(http://office.9zp.com)回复于 2005-06-23 17:59:46 得分 0
.Document.DesignMode = "on" '设计模式
设计模式
设计模式
设计模式
Top
15 楼cxianfa(含笑)回复于 2005-06-23 18:58:46 得分 20
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
ShellExecute frmDisplay.hwnd, vbNullString, "http://www.sina.com", vbNullString, vbNullString, SW_SHOWNORMALTop




