TWebBrowser中如何遍历其中的元素?特别是当页面有FRAME时怎么办?(100分)

J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
没有Frame时倒是好办。
一有Frame时,可以得到那个frame,但是怎么得到那个frame中的页面,
从而继续分析那个页面中的元素呢?
我觉得这个问题停头痛的。
 
我想应该自己分析html语法,得到那些frame
 
我现在可以得到那个FRAME的名称。
可是我还要得到那个FRAME的页面的IHTMLDOCUMENT2接口就困难了。
怎么办呢?
你能不能具体点啊?
 
听听,学学。
 
我觉得你的这个页面是不是一个frame, 你并不知道,有一个主页面里面连接着
几个frame, 什么frameset 等等,这里就有 href, 可以得到地址,
但你的这个页面并不知道,所以说, 难,也许不可能。
 
我可以遍历tagName属性判断有没有frameset.这样就可以知道是不是由frame
组成的。
而且我觉得整个页面都已经在我的浏览器中了,难道我还不能得到指向其中
每个页面的IHTMLDocument2的接口吗?
而且我觉得由于用的是MicroSoft的控件(我指的是TWebBrowser),不是
Borland公司自己的东西,所以Borland公司的接口做的不太好。用起来远
远不如在VB中方便了。
不过我现在不能用VB,必须用C++Builder.所以就翘翘了。
真诚地希望大虾们能指点迷津。
 
This sample code shows how to interate through all frames in order to test whether the 'copy' command is enabled:

procedure TForm1.Button1Click(Sender: TObject)

var
i: integer

begin
for i := 0 to (WebBrowser1.OleObject.Document.frames.Length - 1) do
if WebBrowser1.OleObject.Document.frames.item(i).document.queryCommandEnabled('Copy') then
ShowMessage('copy command is enabled for frame no.' + IntToStr(i));
end;

给分吧,哥们,haha
 
hubdog:
你调试成功了吗?
你知道在C++Builder中怎么做吗?
先给你50分吧。
 
必须一下子全部给出去分吗?
 
当然调试过了,C++ Builder我没装,不知道怎么用,应该差不多吧
 
好吧,只好先这样了。
但是我还是不很满意。呵呵。给你100分了。
 

Similar threads

D
回复
0
查看
791
DelphiTeacher的专栏
D
D
回复
0
查看
820
DelphiTeacher的专栏
D
D
回复
0
查看
869
DelphiTeacher的专栏
D
D
回复
0
查看
707
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部