我在FORM里面添加了一个webBrowser控件,打开的网页里面有如下代码
<INPUT class=cmd onclick=window.print() type=button value=打印> 
<INPUT class=cmd onclick="location.href='http://www.aaa.com.cn/download/aaa.zip'" type=button value=下载> 
我想在点击打印和下载的时候能够捕获到事件,然后自己处理,我在网上找到一个例子,部分代码如下:         WebBrowser的Navigated事件
        private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {            mshtml.IHTMLWindow2 win = this.webBrowser1.Document.Window.DomWindow as mshtml.IHTMLWindow2;
         
            win.execScript("window.print = function(str) {window.external.WebAlert(str); };", "JScript");
        }打印可以通过window.print 来捕获,但是下载怎么来捕获?
自己找了很久都没找到什么方法,麻烦大家帮帮忙,谢谢了。

解决方案 »

  1.   

    单纯的补获下载事件估计是不行的
    你点击下载时,实际上location已经改变(跳转至下载地址)
    所以会触发页面中的两个事件
    window.onbeforeunload和window.onunload可以在这个上面做文章
      

  2.   

    因为那个页面我只是引用别人的,而且不能修改,我要做的就是屏蔽所有的下载,所有下载都会触发onbeforeunload吗?
      

  3.   

    location改变,会触发window.onunload
      

  4.   

    我刚才试了下的,点击下载后,页面没有跳转的,window.onunload也没有被触发,只是出来了文件下载的对话框
      

  5.   

    不知道LZ想要的是什么,看看这个http://wallimn.javaeye.com/blog/546774
      

  6.   

    只要把下载屏蔽掉??<INPUT class=cmd onclick="location.href='http://www.aaa.com.cn/download/aaa.zip'" type=button value=下载>  直接把 onclick事件去掉就可以了呀
      

  7.   

    就像楼上说的,你只要拦截onunload事件就可以了
    在你的网页中,<body>里面, 添加一个事件拦截,即<body onunload=Your Function>
    Your Function就是
    function GoBack()
    {
    top.location.href = "..."; // 你网页的URL
    }
    这样, 当用户点击了下载,触发当前网页转向时, 你的自定义过程(Your function)拦截了转向,重新将用户带回你的网页而不是那个下载网址.
      

  8.   

    谢谢,但是那个网页我是不能修改的,我只是调用而已,我是想在C#中的FORM里控制不让下载