none
求助:vb.net如何获取iframe中加载的html代码 RRS feed

  • 问题

  • <iframe src="/index.html">
    <p>Your browser does not support iframes.</p>
    </iframe>

    如下这段代码,在Webbrowser加载后,其DocumentText仍然是上文的代码,无法获取src="/index.html"指定的index.html的html代码。

    index.html的html代码该如何获取呢?谢谢


    编程是永无止境的,向大家学习

    2012年10月23日 4:11

答案

  • //引用microsoft html object library
    mshtml.HTMLDocument doc = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
    
    object index=0;
    mshtml.IHTMLWindow2 frame = (mshtml.IHTMLWindow2)doc.frames.item(ref index); 
    doc = (mshtml.HTMLDocument)frame.document;
    
    //后面就和普通的一样了

    http://feiyun0112.cnblogs.com/

    • 已标记为答案 abcjackson 2013年1月16日 15:09
    2012年10月25日 9:29
    版主

全部回复

  • Webbrowser.ifames(0).Document.body.innerhtml

    http://feiyun0112.cnblogs.com/

    2012年10月23日 6:34
    版主
  • Webbrowser.ifames(0).Document.body.innerhtml

    http://feiyun0112.cnblogs.com/


    Webbrowser没有ifames属性呀。

    Webbrowser.Document.Windows.Frames(0).Document.body.innerhtml返回的是下面的内容:

    <iframe src="/index.html">
    <p>Your browser does not support iframes.</p>
    </iframe>

    src="/index.html" 的内容没有展开。

    这个是非常头疼的,即便等几秒后(用Timer事件)再检查Webbrowser.Document.Windows.Frames(0).Document.body.innerhtml,结果还是一样





    编程是永无止境的,向大家学习

    2012年10月24日 2:13
  • 内容实际上应该已经在Webbrowser控件加载了的,但是不知道从哪里访问这段有iframe二次加载的Html代码,总不能强制Webbrowser导航至src指向的页面吧,这样可能又会导致网页本身设计验证等其他问题,最好能原原本本的加载,然后从Webbrowser直接获取加载完的页面Html代码

    编程是永无止境的,向大家学习

    2012年10月25日 8:49
  • //引用microsoft html object library
    mshtml.HTMLDocument doc = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
    
    object index=0;
    mshtml.IHTMLWindow2 frame = (mshtml.IHTMLWindow2)doc.frames.item(ref index); 
    doc = (mshtml.HTMLDocument)frame.document;
    
    //后面就和普通的一样了

    http://feiyun0112.cnblogs.com/

    • 已标记为答案 abcjackson 2013年1月16日 15:09
    2012年10月25日 9:29
    版主
  • //引用microsoft html object library
    mshtml.HTMLDocument doc = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
    
    object index=0;
    mshtml.IHTMLWindow2 frame = (mshtml.IHTMLWindow2)doc.frames.item(ref index); 
    doc = (mshtml.HTMLDocument)frame.document;
    
    //后面就和普通的一样了

    http://feiyun0112.cnblogs.com/

    我自己写了一个html镶嵌iframe的简单网页来测试,发现你的方法是可行的,同样的,

    直接用Webbrowser1.Document.Window.Frames(0).Document.Body.OutHtml也能同样访问到scr加载后的页面!!!

    但是用回网站的页面,却又不管用了,doc里面的body.outerHTML并没有变化。

    这是为什么呢?请再帮忙看看,谢谢啊


    编程是永无止境的,向大家学习

    2012年11月1日 8:34