WebBrowser如何关闭弹出对话框

[复制链接]
查看11 | 回复4 | 2017-9-7 20:01:23 | 显示全部楼层 |阅读模式
WebBrowser如何关闭弹出的alert对话框,我找了很久也没有解决办法。我的程序是用delphi写的。有试过几种方法。
第一种用 WMActivate(var Msg: TWMActivate); message WM_ACTIVATE; 事件在正常情况下可以自动关闭,但我的程序是运行在系统托盘的,在最小化到托盘后,这个事件就不起作用了。
第二种用 obj.parentWindow.execScript "function showModalDialog(){return;} 类似的方法,网页本页面弹出的对话框可以屏蔽,但我的程序调用了某个ASPX页面,它是提交后返回时弹出对话框的,也不起作用了。
对话框弹出的时候,只有WebBrowser控件不可用,程序还是正常运行的,我就用个 Timer 来 FindWindow('IEFrame',nil) 然后SendMessage关闭事件,但是根本没效果。
程序只差一个功能完工了啊,500高分求解!
~
还有匿名回答啊
可以了,多谢,到这边拿分吧
http://zhidao.baidu.com/question/83500340.html
http://zhidao.baidu.com/question/83092023.html
多任务网页定时刷新器
http://hi.baidu.com/abingpow/blog/item/42cb0fd731bc3ddaa044dffe.html

回复

使用道具 举报

千问 | 2017-9-7 20:01:23 | 显示全部楼层
屏蔽alert、confirm、showModalDialog源代码:lert,confirm函数:IHTMLWindow2 win = (IHTMLWindow2)hd.Window.DomWindow;string s = @"function confirm() {";s += @"return true;";s += @"}";s += @"function alert() {}";win.execScript(s, "javascript");OK ,大功告成,我们可以继续我们正常的操作拉,比如填写表...
回复

使用道具 举报

千问 | 2017-9-7 20:01:23 | 显示全部楼层
在CSDN上有类似的问题,参见http://topic.csdn.net/u/20080313/00/5e2add09-6103-405f-8f6b-6bbb220e9cfd.htmlfunction CallBackProc(H, HMainForm: hwnd): Boolean; stdcall;varhChild : hw...
回复

使用道具 举报

千问 | 2017-9-7 20:01:23 | 显示全部楼层
你可以在VB程序中判断,当新网页打开后,主动退出程序。...
回复

使用道具 举报

千问 | 2017-9-7 20:01:23 | 显示全部楼层
在触发navigate事件后, 设置timer检查有没有alert弹出,有的话关闭alert,或者在alert里找到类似OK\确定的按钮然后发送click...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行