winform 如何获取IE页面Alert 事件

xb06620422 2012-11-29 03:06:38
不能使用webbrowser控件(已经检测无法过网页AX控件检测)
使用SHDocVw+mshtml 获取IHTMLDocument
可操作页面Dom元素,但是如何接受页面端触发的alert事件呢?
...全文
278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用钩子监控弹窗,然后用API获取弹窗的内容。。。。
xb06620422 2012-11-30
  • 打赏
  • 举报
回复
已解决

        public void  GetAlert(mshtml.HTMLDocument _doc)
        {
            _doc.parentWindow.execScript("function alert(s){ var span=document.getElementById('Alert_Span');span.innerHTML=s;return;}");
           // mshtml.HTMLSpanElement span = _doc.getElementById("Alert_Span") as mshtml.HTMLSpanElement;
           // return span.innerHTML;
        }
                         mshtml.HTMLSpanElement AlertSpan = doc.getElementById("Alert_Span") as mshtml.HTMLSpanElement;
                        string AlertContent = AlertSpan.innerHTML;
kunkun0921 2012-11-29
  • 打赏
  • 举报
回复
用webbrowser的事件进行消息截取

 public static List<string> errors;
        void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            IHTMLWindow2 win = (IHTMLWindow2)webBrowser1.Document.Window.DomWindow;
            string s = @"function confirm() {";
            s += @"return true;";
            s += @"}";
            s += @"function alert(str)";
            s += @"{";
            s += @"window.external.alertMessage(str);";
            s += @"}";
            win.execScript(s, "javascript");
            webBrowser1.ObjectForScripting = this;
        }

 public void alertMessage(string s)
        {
            errors.Add(s);
        }
蝶恋花雨 2012-11-29
  • 打赏
  • 举报
回复
看看这篇文章 http://hi.baidu.com/orxor/item/ce51ad2155724dcda4275a20 最下面的例子。
xb06620422 2012-11-29
  • 打赏
  • 举报
回复
截取事件后如何获取alert 的内容呢?
wanghui0380 2012-11-29
  • 打赏
  • 举报
回复
可以利用HTMLWindowEvents2的execScript 方法去改写alert方法
devmiao 2012-11-29
  • 打赏
  • 举报
回复
弹出消息框,必然窗体会失去焦点,losefocus就可以判断了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧