如题目

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      IpStream: IPersistStreamInit; 
      AStream: TMemoryStream; 
      iw: IWebbrowser2; 
      i: Integer; 
      sl: TStringList; 
    begin 
      for i := 0 to Webbrowser1.OleObject.Document.frames.Length - 1 do 
      begin 
        iw := GetFrame(i); 
        AStream := TMemoryStream.Create; 
        try 
          IpStream := iw.document as IPersistStreamInit; 
          if Succeeded(IpStream.save(TStreamadapter.Create(AStream), True)) then 
          begin 
            AStream.Seek(0, 0); 
            sl := TStringList.Create; 
            sl.LoadFromStream(AStream); 
            sl.SaveToFile('c:\frame' + IntToStr(i) + '.txt'); 
            //  memo1.Lines.LoadFromStream(AStream); 
            sl.Free; 
          end; 
        except 
        end; 
        AStream.Free; 
      end; 
    end; 
      

  2.   

    uses 
      ActiveX; function TForm1.GetFrame(FrameNo: Integer): IWebbrowser2; 
    var 
      OleContainer: IOleContainer; 
      enum: IEnumUnknown; 
      unk: IUnknown; 
      Fetched: PLongint; 
    begin 
      while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do 
        Application.ProcessMessages; 
      if Assigned(Webbrowser1.document) then 
      begin 
        Fetched := nil; 
        OleContainer := Webbrowser1.Document as IOleContainer; 
        OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum); 
        Enum.Skip(FrameNo); 
        Enum.Next(1, Unk, Fetched); 
        Result := Unk as IWebbrowser2; 
      end 
      else 
        Result := nil; 
    end; 
      

  3.   

    WebBrowser中的页面是个HTML编辑器,我想用DELPHI完成装入HTML代码的工作,实际编辑区是一个IFRAM。
      

  4.   

    存储是可以了,读入怎么读,我把文件转为流IpStream.load(TStreamadapter.Create(AStream))没反映
      

  5.   

    WebBrowser1.Navigate('about:blank');
    while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
      Application.ProcessMessages;
    AStream.Seek(0, 0);
    (WebBrowser.Document as IPersistStreamInit).load(TStreamadapter.Create(AStream));(注:挿入上述試試)
      

  6.   

    能读入,但是没读进IFRAM,而且主页面给清掉了
      

  7.   

    "能读入,但是没读进IFRAM",那读进的是什麽呀?
    AStream中不是己装入了指定的IFRAM内容吗?WebBrowser1.Navigate('about:blank');//就是清当前页面
      

  8.   

    是要吧AStream中的内容读到当前页面的ifram里去
    WebBrowser1.Navigate('about:blank');把当前控件中的页面转向空白页了。
      

  9.   

    還不行? 我的TEST用的SOURCE:procedure TForm1.Button1Click(Sender: TObject);
    var iw: IWebbrowser2;
        AStream: TMemoryStream;
        IpStream: IPersistStreamInit;
    begin
      iw := GetFrame(1);   //指定某Frame
      AStream := TMemoryStream.Create;
      try
        IpStream := iw.document as IPersistStreamInit;
        if Succeeded(IpStream.save(TStreamadapter.Create(AStream), True)) then
        begin
          WebBrowser1.Navigate('about:blank');
          while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
          Application.ProcessMessages;      AStream.Seek(0, 0);
          (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));      AStream.Seek(0, 0);    //為了Test、Frame内容装入Memo
       memo1.Lines.LoadFromStream(AStream);
        end;
      except
      end;
      AStream.Free;
    end;
      

  10.   

    我没QQ。 QQ還能贴图?用TWebBrowser接Frame後、出現怪码?不正常?
    MEMO1中的内容是取得的Frame的HTML?
    也可以把你TEST用的HTTP Address贴出...
      

  11.   

    (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
    这一句讲当前页面整个填充了,我要的效果只是填充网页中的一小块区域。
    不理解为什么可以存储ifram中的内容,但是读入到这块区域却不行呢?
      

  12.   

    ifram中不是一个URL,你找个网上的HTML编辑器看看就知道了
    http://webeditor.aspsir.com/
    试下这个,把一个HTM文件的HTML代码读入到里面去
      

  13.   

    hehe,你的是 <iframe>...</iframe>Sorry,我理解為<Frame>...</Frame>。
    等一下、我試試看...
      

  14.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Webbrowser1.Navigate('http://webeditor.aspsir.com/');
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      oIFrame: OleVariant;
    begin
      oIFrame := WebBrowser1.OleObject.Document.Frames.item(0);
      Memo1.Lines.Clear;
      //IFrame代码存入Memo1
      Memo1.Lines.Add(oIFrame.document.body.innerHTML);
    end;procedure TForm1.Button3Click(Sender: TObject);
    var
      oIFrame: OleVariant;
    begin
      oIFrame := WebBrowser1.OleObject.Document.Frames.item(0);
      //在IFrame读入Memo1中的HTML代码
      oIFrame.Document.body.innerText := Memo1.Text;
      //oIFrame.Document.body.innerHTML := Memo1.Text;
    end;