少先队员中国梦梦想:如何取得网页框架中的内容(300分)
来源:百度文库 编辑:偶看新闻 时间:2024/05/10 09:29:52
查了以前写过的代码,不用在OnDocumentComplete事件也可以做到:
uses mshtml, ActiveX;
// 获取框架对象
function GetFrame(wb: TWebBrowser; FrameNo: Integer): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
unk: IUnknown;
Fetched: PLongint;
begin
if Assigned(wb.Document) then
begin
Fetched := nil;
OleContainer := wb.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;
procedure TForm1.Button1Click(Sender: TObject);
var
link, frame: IHTMLElement;
coll, coll1: IHTMLElementCollection;
doc: IHTMLDocument2;
i,j: Integer;
begin
try
coll := (WebBrowser1.Document as IHTMLDocument2).all;
coll := (coll.tags( 'frame ') as IHTMLElementCollection);
for i := 0 to coll.Length - 1 do begin
frame := (coll.item(i, 0) as IHTMLElement);
doc := (GetFrame(WebBrowser1, i).Document as IHTMLDocument2);
// 框架的源地址
Memo1.Lines.Add(frame.getAttribute(WideString( 'src '), 0));
// 框架的内容
Memo1.Lines.Add(doc.Body.innerhtml);
// 查找‘点击这里’的链接并点击
coll1 := doc.links;
for j := 0 to coll1.Length - 1 do begin
link := (coll1.item(j, 0) as IHTMLElement);
if link.outerText = '点击这里 ' then begin
link.Click;
Exit;
end;
end;
end;
except
uses mshtml, ActiveX;
// 获取框架对象
function GetFrame(wb: TWebBrowser; FrameNo: Integer): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
unk: IUnknown;
Fetched: PLongint;
begin
if Assigned(wb.Document) then
begin
Fetched := nil;
OleContainer := wb.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;
procedure TForm1.Button1Click(Sender: TObject);
var
link, frame: IHTMLElement;
coll, coll1: IHTMLElementCollection;
doc: IHTMLDocument2;
i,j: Integer;
begin
try
coll := (WebBrowser1.Document as IHTMLDocument2).all;
coll := (coll.tags( 'frame ') as IHTMLElementCollection);
for i := 0 to coll.Length - 1 do begin
frame := (coll.item(i, 0) as IHTMLElement);
doc := (GetFrame(WebBrowser1, i).Document as IHTMLDocument2);
// 框架的源地址
Memo1.Lines.Add(frame.getAttribute(WideString( 'src '), 0));
// 框架的内容
Memo1.Lines.Add(doc.Body.innerhtml);
// 查找‘点击这里’的链接并点击
coll1 := doc.links;
for j := 0 to coll1.Length - 1 do begin
link := (coll1.item(j, 0) as IHTMLElement);
if link.outerText = '点击这里 ' then begin
link.Click;
Exit;
end;
end;
end;
except
如何取得webbrowser控件中的内容
框架网页中框架内容的控制
网页框架中的问题
网页中的框架
如何控制框架内容
求助:在DREAMWEAVER中用框架做网页,如何连接框架左右的内容?
如何使用Dreamweaver中的框架作网页?如何保存?
DreamWeaver中的框架如何实现点给左边的框架链接右边显示内容?
如何保存网页中的内容?
如何设计网页框架
如何取得框架中数据的值?
怎么样做出网页中的框架??
浏览网页内容时,如何放大网页中的文字内容?
如何框架别人的网页????
如何删除框架网页中的框架。还有一个就是怎么样让FLASH出现自动的倒计时的动画。
如何让textarea获取我需要的框架frame中的内容了
如何让textarea获取我需要的框架frame中的内容了
网页框架怎么随里面网页内容变化大小?
在VC++中如何取得框架类指针?
如何把网页中的某部分含有图片的内容搬到email中发送给朋友?
[html 框架] 框架内为文字而不是网页,如何实现?
框架网页如何把框架设置为隐藏?
如何在把不让框架的网页框架起来
copy 网页中的内容?