用c#编写浏览器,网页中有“onclick=‘window.open(.....)’”打开的网页,如何让它像opera那样显示在另一个tab里,而不是弹出一个新的窗口?????
重新定义
this.webBrowserMain.NewWindow += new System.ComponentModel.CancelEventHandler(this.webBrowserMain_NewWindow_1);然后在this.webBrowserMain_NewWindow_1里处理:
myUri = new System.Uri(((WebBrowser)sender).StatusText);可以解决通过地址打开窗口的问题,可是对于window.open()却不行,提示((WebBrowser)sender).StatusText 为空!该如何解决window.open()的问题呢!!!特别是在有框架的网页里!!!(如果在一个普通的jsp网页里可以分析点击的代码分析出要弹出的窗口,但在有框架的网页里只能分析出点了哪个框架,至于框架里的代码不知如何分析)希望各位能人能帮帮我,谢谢了

解决方案 »

  1.   

    visual studio 2005 里的WebBrowser 有NewWindow 没有 NewWindow2????
      

  2.   

    parent.frames["main"/或者指定的框架].xxxxx.属性/或者方法
      

  3.   

    搞懂了一点,如果改用com控件AxSHDocVw.AxWebBrower,里面有NewWindow2,可以解决window.open的问题,谢谢hdt(倦怠),但是WebBrowser没有,是不是就不能处理window.open呢????????
      

  4.   

    我用的是.NET1.1
    写过多页面浏览器我的方法:
    private void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)
    {
    AxSHDocVw.AxWebBrowser _axWebBrowser=CreateNewWebBrowser();//生成新的TabPage页
    e.ppDisp=_axWebBrowser.Application;
    _axWebBrowser.RegisterAsBrowser=true;
    }
      

  5.   

    我的意思其实很简单,就是自己想编一个浏览器,像opera那样,点了网页中的连接弹出窗口以tab页的方式打开,而不要新开一个窗口,用2005中的.net 控件WebBrowser 没有NewWindow2这个事件,只有NewWindow,我改写了NewWindow,发现对于浏览的网页中如果有直接地址连接的话,用myUri = new System.Uri(((WebBrowser)sender).StatusText);就可以捕获新开页面的地址,而对于用window.open来打开新网页的网页来说,用上面的那句会被告知值为空,就没办法捕获地址了,于是想了个办法,通过分析点击网页的代码,从中提出点击处的window.open代码,解决了一般的jsp的弹出窗口地址捕获的问题,可是在试有框架的网页时,发现点击代码是框架的的代码,得不到框架中jsp的文件内容,就得不到地址,我的问题就是这个问题,想看看大家是如何解决的,或者是我的想法错了,
    后来改用com控件AxSHDocVw.AxWebBrower,里面有NewWindow2,这个问题就解决了,希望没有误导大家
    现在的问题就是有人用过WebBrowser来解决这个问题的吗?谢谢