如题,就是读子网页里的内容。
--------------------------
如以下网页a.htm,里面简单的一个框架用到b.htm
<IFRAME src="b.htm" id="objcompentframe"></IFRAME>1、如何取得b.htm的原码,因为我们要控制的是别的网站的页面
2、在页a.htm打开后,b.htm网页的内容当然也显示出来了,现在我想用delphi可以控制到属于b.htm里的内容,向b.html的编辑框输入内容。

解决方案 »

  1.   


    [code=Delphi(Pascal)]
    WebBrowser.oleobject.document.documentelement.document.frames.item(框架索引).document.documentElement.innerHTML
    我没有测试,你试试,不知行不行[/code]
      

  2.   

    谢谢大哥,呵呵,刚才没说清楚 
    我这里的情况是iframe里的一个iframe 
    而且感觉你的这段代码好象是拿不到b.htm的代码的哦
      

  3.   

    function   TForm1.GetFrame(FrameNo:   Integer; WB: TWebBrowser):   IWebbrowser2;
    var
      OleContainer:   IOleContainer;
      enum:   IEnumUnknown;
      unk:   IUnknown;
      Fetched:   PLongint;
    begin
      while WB.ReadyState <> READYSTATE_COMPLETE do
        Application.ProcessMessages;
        
      if Assigned(WB.document)   then
      begin
        Fetched := nil;
        OleContainer := WB.Document as IOleContainer;
        OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, enum);
        Enum.Skip(FrameNo);
        Enum.Next(OLECONTF_EMBEDDINGS, Unk, Fetched);
        Result := Unk as IWebbrowser2;
      end
      else
        Result := nil;
    end;
    function GetWebPage(const Url: string): AnsiString;
    var
      Session,
      HttpFile: HINTERNET;
      szSizeBuffer: Pointer;
      dwLengthSizeBuffer: DWord;
      dwReserved: DWord;
      dwFileSize: DWord;
      dwBytesRead:  DWord;
      Contents: PChar;
    begin
      Session := InternetOpen('',0,niL,niL,0);
      HttpFile  :=  InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
      dwLengthSizeBuffer  := 1024;
      while True do
      begin
        HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
        GetMem(Contents,dwFileSize);
        InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
        if dwBytesRead = 0 then
          Break
        else
          Result := Result + Contents;
      end;  InternetCloseHandle(HttpFile);
      InternetCloseHandle(Session);
      FreeMem(Contents);
    end;
    试试这个
      

  4.   

    这个要具体网页具体分析。控制多个ifram是我的强项。取一个包含在<IFRAME>标签内的网页源码:
    showmessage(Wb1.oleobject.document.documentelement.document.frames.item(0).Document.body.innerHTML)
      

  5.   

    DDDDDDDDDD
      

  6.   

    http://news.baidu.com/我想写个程序。大概的功能是:
    1.类似定制版的浏览器。读取指定页面。http://news.baidu.com/然后软件上有个登陆窗口。不是在网页上登陆。直接在软件上用“按钮+文本框”登陆百度。
    2.读取某网站的页面内容。获取他最新更新的新闻。并且自动刷新网页。在网页上有新闻的时候。弹出消息对话框。告诉我有最新新闻了。能弹出对话框的同时 要是能播放个音乐什么的最好了 。
    3.读取网页指定区域。的指定内容。比如网站上的新闻列表。读出来在软件的Webbrowser控件界面上显示。出来。不是直接是浏览器。不需要读取这个页面。只要网页上的一部分内容就好了。
    4.我不要再软件上让人看到百度广告等等垃圾消息。只要新闻。每隔20秒自动刷新一次。弹窗对话框或者语音。提示有新的新闻出来了。看看有没有高手有现成的或者类似的源码的。
    发给我邮箱:1617822579(at)qq.com 或者联系我qq# 1617822579