在用c# WebBrowser控件或用axWebBrowser控件时,对事件NewWindow3进行了处理:
本来要在新的IE窗口打开的页面进行了吸收( e.cancel = true;),再用WebBrowser或axWebBrowser打开新页面。因吸收了页面,[新页面]与[打开新页面的页面]的关系没了。
本来在IE中[新页面]可以通过window.opener访问[打开新页面的页面]的window,现在因为是WebBrowser打开新页面,页面window.opener值为NULL.请问高手,该怎样处理window.opener值为[打开新页面的页面]的window.

解决方案 »

  1.   

    写段script,把opener设上去,哈哈,随便说说,等高人回答
      

  2.   

    这样就可以了,没有你想的那么麻烦,你是要用自己的浏览器显示新弹出的页面吧?
    webBrowser1_NewWindow中设置:axWebBrowser.RegisterAsBrowser=true;
      

  3.   

    如果是使用axWebBrowser控件,则处理它的NewWindow事件,在这个事件中,告诉系统,用你的浏览器打开新开页面:下面的axWebBrowser是你浏览器上的axWebBrowser控件。
    axWebBrowser.RegisterAsBrowser=true;
      

  4.   

    我试了下axWebBrowser控件,在NewWindow3中添加axWebBrowser.RegisterAsBrowser=true;也是无效的。window.opener的值还是为NULL。能不能给个实现的源码看看。
      

  5.   

    NewWindow2!事件!
      

  6.   

    我试了下,还是不可以的,你这样,[新页面]的WebBrowser与[打开新页面的页面]的WebBrowser还是没有建立关系。[新页面]的WebBrowser中的脚本对象window.opener还是空的。
      

  7.   

    你可以实现新开窗口用你的浏览器显示了吧
    你的window.opener做什么用?
      

  8.   

    通过网上查找资料。
    在axWebBrowser_NewWindow3中加e.ppDisp = axWebBrowser2.Application;axWebBrowser与axWebBrowser2建立关系,可以解决问题。axWebBrowser2为axWebBrowser_NewWindow3事件中打开的[新的页面]的WebBrowser。
    如果设置为e.cancel = true,则window.opener为空
      

  9.   

    以前这样只能做到形似,很多功能都不能用。
    window.opener,window.parent 等都无法使用。