我用webBrowser加载了一个页面,并执行一些命了,比如向文本框赋值,并点击确定按钮.然后我再去调用下一个页面进行分析.
但是这个页面定义了onunload事件,只要网页一退出,就会调用一个异步的请求,然后向网站后台发出退出信息,我现在想阻止他在网页退出的时候,向后台发出退出信息,我该怎么做,我可以拦截掉异步发送给指定页面的信息吗?

解决方案 »

  1.   

    用 js 重写 windows.onunload = function() { };
      

  2.   

    试试:
    WebBrowser1.Navigate("javascript:function(){ window.onunload=function(){}; }");或者查查 WebBrowser1.InvokeScript
      

  3.   

    尝试了第一种方法,不好使,
    第二种方法,只能执行在 HTML 页面中定义的动态脚本函数,不能自己添加函数进去.
      

  4.   

    添加 Microsoft.mshtml.dll 估计不同版本.net会有不同,下面代码在.net 4.0测试通过 var htmlDoc = (IHTMLDocument3)webBrowser1.Document.DomDocument;
     HTMLHeadElement head = htmlDoc.getElementsByTagName("head").Cast<HTMLHeadElement>().First();
     var script = (IHTMLScriptElement)((IHTMLDocument2)htmlDoc).createElement("script");
     script.text = "window.onunload=function() {}";
     head.appendChild((IHTMLDOMNode)script); webBrowser1.Navigate("http://bbs.csdn.net");
      

  5.   

    我引用了mshtml.dll但是mshtml.IHTMLDocument3这个接口找不到Cast<HTMLHeadElement>().First()这个函数接口..