在DEFAULT.ASPX.CS文件里尝试用以下方法
SHDocVw.WebBrowser wb = (SHDocVw.WebBrowser)this.FindControl("WebBrowser1");

枚举浏览器端元素
System.Web.UI.ControlCollection ctl = this.Controls;
都无法找到,请问该如何处理? 谢谢DEFAULT.ASPX文件内容包含
<object id='WebBrowser1' WIDTH="50" HEIGHT="50"  CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'> 在线等待..................

解决方案 »

  1.   

    那是一个IE中的对象,你怎么可能得到它的引用呢?你如果想干预它的执行,那应该通过前台脚本进行。
    欢迎大家来我的博客作客:http://blog.csdn.net/aafshzj/
    我正在写一系列关于AAF组件框架的文章。该框架能对开发工作提供很多帮助,并极大地提高开发效率。希望大家看一看并提出宝贵建议。
      

  2.   

    我想访问WebBrowser.document,可以访问其内容,前端的控件显示的内容应该是可以取到的.
    javascript可以用window.document来获取
      

  3.   

    回答以下问题一样有奖,多谢解答!
    如何在客户端浏览器打开一个新的IE窗口,现在的问题是窗口总是在服务器端打开?在DEFAULT.ASPX.CS文件里尝试用以下方法
    protected void btnsubmit_Click(object sender, EventArgs e)
    {
            SHDocVw.WebBrowser wb  = new SHDocVw.WebBrowser();
            ...
            wb.Navigate2("http://www.google.com", ref objnull,ref objnull, ref objnull, ref objnull);
    }DEFAULT.ASPX文件内容包含以下调用
      <asp:Button ID="ButtonLink0" runat="server"  OnClick="btnsubmit_Click" />
      

  4.   

    客户端的对象你无法直接操作,服务器端你的操作也不会直接影响客户端,二者是通过通信机制互相调用的。后面这个问题是类似的:你如果要打开前台的浏览器。那就不要做服务器端回发,而是在btnSubmit的Attributes中增加一个名为onclick的属性调用客户端的脚本。这样在生成Aspx页面时,客户端代码的btnSubmit的onclick事件就会被设定为上述脚本。随后就可以通过该脚本大概新页面。
      

  5.   

    TO:aafshzj()   很有道理,谢谢. 
    我的目的是想访问mshtml.HTMLDocument, 如果有方法得到一个框架网页的一个页面的document属性或者另外一个已经打开的IE的DOCUMENT属性也是可以的;
    如果用枚举浏览器的方法 SHDocVw.ShellBrowserWindowClass shellWindows = new SHDocVw.ShellBrowserWindowClass(); 在本机上可以得到打开的IE.DOCUMENT,但在客户端会提示类厂没注册,不知道怎么样才可以达成这样的目标?
      

  6.   

    我似乎见到可以在 webbrowser的事件里得到webbrowser.document 
    ...
    public void DocumentComplete(object pDisp, ref object URL)
    ....
    但如何动态将DocumentComplete事件绑定给一个浏览器前端对象/?wb.ID = "WebBrowser1";
    wb.Attributes.Add("classid", "clsid:{8856F961-340A-11D0-A96B-00C04FD705A2}");
    wb.Attributes.Add("DocumentComplete"....
    不知道下面该如何写,呵呵
      

  7.   

    Document是一个复杂的对象,很难远程直接访问。唯一的办法是自己做中间的代理层。由于服务器端无法主动调用客户端IE中的东西,如果你要操作其逻辑要么按预设的逻辑(JavaScript)进行处理,要么服务器端定时或事件触发通过ajax提交请求到服务端,由服务介入干预。无论如何,都要通过javascript。一切对象远程访问都要有通讯代理,既然client IE不存在远程通过HTTP可访问的通讯代理,你就只能通过javascript大致模拟一个。
      

  8.   

    Dim wb As SHDocVw.WebBrowser = DirectCast(pDisp,SHDocVw.WebBrowser); 这样是否可行?
      

  9.   

    救命,各路英雄!
    小弟在VS2005运行网站很正常(http://localhost:3535/WebSite1/),但用IP地址访问该页面(http://192.168.1.101:3035/Default.aspx)就出现以下错误,还望各位大侠不吝赐教!谢谢!“/football”应用程序中的服务器错误。
    --------------------------------------------------------------------------------检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 8007000e。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.OutOfMemoryException: 检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 8007000e。源错误: 行 673:        mshtml.IHTMLDocument2 MyDoc;
    行 674:        //SHDocVw.ShellBrowserWindowClass shellWindows = new SHDocVw.ShellBrowserWindowClass();//ShellWindowsClass        
    行 675:        SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();//ShellWindowsClass        
    行 676:        foreach (SHDocVw.InternetExplorer MyIE in shellWindows)
    行 677:        {
     
      

  10.   

    SHDocVw.ShellBrowserWindowClass和SHDocVw.ShellWindows接口通过网络访问不了?作何解呢?
      

  11.   


    Hi,
       I have writen a code to take snapshot of Internet Explorer. The code 
    works fine when run in the debug mode. But once I publish the site I get the 
    following error for:Retrieving the COM class factory for component with CLSID 
    {9BA05972-F6A8-11CF-A442-00A0C90A8F39} failed due to the following error: 
    8007000e.The statement the error is shown for is:
     SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();Any help would be really appreciated
    Thanks
      

  12.   

    aafshzj :可以吧,有一个方法可以达到,如上提示8007000e的错误,看起来是没有足够的内存继续执行程序时,进程被回收了,不知道WINDOWS改如何设置应用程序池,或使用/3GB模式启动计算机 ?
      

  13.   

    用下列方法可以得到当前系统进程.有人可以告诉我如何转为 SHDocVw接口吗,谢谢
            System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("iexplore");
           foreach (SHDocVw.InternetExplorer MyIE in ps)//???!!!!
    {
    .....
    }
      

  14.   

    To:aafshzj 
    采用你的建议,可是用脚本无法访问其他IE里面的内容啊.
    win.open() 打开一个窗口,无法获取其内容,提示拒绝访问.JAVASCRIPT对跨域引用有权限问题吧,
    用loadPolicyFile在网页上怎么实现?