全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3502
推到 Plurk!
推到 Facebook!

如何取得 TWebBrowser 裡的html內容

答題得分者是:52life
arsene
一般會員


發表:3
回覆:1
積分:5
註冊:2002-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-13 15:08:18 IP:61.222.xxx.xxx 未訂閱
請教各位前輩
WebBrowser.Navigate('http://tw.yahoo.com');
該如何取得 WebBrowser 目前連到的網頁原始碼呢??
謝謝

awen
一般會員


發表:0
回覆:4
積分:0
註冊:2006-10-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-10-13 19:32:06 IP:221.234.xxx.xxx 未訂閱
if WebBrowser1.Document <> nil then
begin
S := (WebBrowser1.Document as IHTMLDocument2).body.outerHTML;
ShowMessage(S);
// or
Memo1.Lines.Text := S;
end;
不過這段代碼只能獲得Body部分的全部代碼,Head部分的我也不知道怎麽取。
52life
一般會員


發表:3
回覆:6
積分:6
註冊:2006-11-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-11 08:59:06 IP:220.250.xxx.xxx 未訂閱
问题提出/摘要:
怎样将TWebBrowser.Document中的HTML源代码保存到磁盘? -- 从WebBrowser.Document中获取HTML源代码.

回答:
TWebBrowser.Document实现了IPersistStreamInit接口,此接口提供了一个Save()方法。你所需要了解的是如何使用这个方法,通常是与实现了IStream接口的对象配合使用。我们可以简单地使用TStreamAdapter来达到这个目的。

注意IPersistStreamInit和IStream接口是在ActiveX单元中声明的。

以下是代码:

procedure TForm1.SaveHTMLSourceToFile(const FileName: string;
WB: TWebBrowser);
var
PersistStream: IPersistStreamInit;
FileStream: TFileStream;
Stream: IStream;
SaveResult: HRESULT;
begin
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
SaveResult := PersistStream.Save(Stream, True);
if FAILED(SaveResult) then
MessageBox(Handle, 'Fail to save HTML source', 'Error', 0);
finally
{ we are passing soReference in TStreamAdapter constructor,
it is our responsibility to destroy the TFileStream object. }
FileStream.Free;
end;
end;

pocedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
SaveHTMLSourceToFile(SaveDialog1.FileName, WebBrowser1);
end;
系統時間:2024-05-03 4:13:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!