用TWebBrowser控件看网页源代码的新问题???(100分)

  • 主题发起人 主题发起人 peacekeeper
  • 开始时间 开始时间
P

peacekeeper

Unregistered / Unconfirmed
GUEST, unregistred user!
在http://www.delphibbs.com/delphibbs/DispQ.asp?LID=274357中,讨论
过看网页的问题。答案我也满意,但是现在发现GetHtml函数好象只能用一次。
我做过试验:首先,连到www.sina.com.cn主页,看它的源代码可以。接着,
进入“新闻中心”,再看它的源代码就什么也看不见了。
  为什么?
 
我试过NMHTTP,加一个显示源代码的窗体,上面放一memo1:
NMHTTP1.Get(WebBrowser1.LocationURL);
Form2.Memo1.Lines.Text:=NMHTTP1.Body;
 
我更需要的是对TWebBrowser控件的解决办法。
 
怎么这么冷清?
 
来自woodstock: 我是这么写的,好象没有问题
procedure GetHtmlDoc(var theList: TStringList);
var
all:IHTMLElementcollection;
doc:IHTMLDocument2;
item:OleVariant;
begin
doc := Browser.document as ihtmldocument2;
all:=doc.all;
item:=all.item(0,varEmpty);

//item.innerhtml是源文件的title到body
//item.outerhtml是全文

theList.Add( item.innerhtml );

end;
 
不必那么麻烦
Memo1.Text:=WebBrowser1.OleObject.document.documentelement.innerhtml;
一行解决,呵呵。
 
记住:你得在documentcompleted事件中调用!
并且若一页有n(〉1)个frame,documentcompleted事件被促发n+1次!!
此时你必须在最后一次促发后调用该函数才能得到真确的结果!
 
to wjiachun:
all:IHTMLElementcollection;
doc:IHTMLDocument2;定义这两种变量需要在uses中添加哪个(或者哪些)单元?
我这样定义总是说ihtmldocument2没有定义之类的。
请大侠不吝指教!谢谢!
 
use ActivX,use MSHTML
 
谢谢zyy04大侠!
 
请继续或结束!
 
请继续或结束
 
还有必要继续么?
 
多人接受答案了。
 
后退
顶部