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

J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
没有Frame时倒是好办。
一有Frame时,可以得到那个frame,但是怎么得到那个frame中的页面,
从而继续分析那个页面中的元素呢?
我觉得这个问题停头痛的。
 
P

Pipi.

Unregistered / Unconfirmed
GUEST, unregistred user!
我想应该自己分析html语法,得到那些frame
 
J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在可以得到那个FRAME的名称。
可是我还要得到那个FRAME的页面的IHTMLDOCUMENT2接口就困难了。
怎么办呢?
你能不能具体点啊?
 
D

DreamTiger

Unregistered / Unconfirmed
GUEST, unregistred user!
听听,学学。
 
S

SuperMMX

Unregistered / Unconfirmed
GUEST, unregistred user!
我觉得你的这个页面是不是一个frame, 你并不知道,有一个主页面里面连接着
几个frame, 什么frameset 等等,这里就有 href, 可以得到地址,
但你的这个页面并不知道,所以说, 难,也许不可能。
 
J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
我可以遍历tagName属性判断有没有frameset.这样就可以知道是不是由frame
组成的。
而且我觉得整个页面都已经在我的浏览器中了,难道我还不能得到指向其中
每个页面的IHTMLDocument2的接口吗?
而且我觉得由于用的是MicroSoft的控件(我指的是TWebBrowser),不是
Borland公司自己的东西,所以Borland公司的接口做的不太好。用起来远
远不如在VB中方便了。
不过我现在不能用VB,必须用C++Builder.所以就翘翘了。
真诚地希望大虾们能指点迷津。
 
H

hubdog

Unregistered / Unconfirmed
GUEST, unregistred user!
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
 
J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
hubdog:
你调试成功了吗?
你知道在C++Builder中怎么做吗?
先给你50分吧。
 
J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
必须一下子全部给出去分吗?
 
H

hubdog

Unregistered / Unconfirmed
GUEST, unregistred user!
当然调试过了,C++ Builder我没装,不知道怎么用,应该差不多吧
 
J

jch

Unregistered / Unconfirmed
GUEST, unregistred user!
好吧,只好先这样了。
但是我还是不很满意。呵呵。给你100分了。
 

Similar threads

D
回复
0
查看
784
DelphiTeacher的专栏
D
D
回复
0
查看
814
DelphiTeacher的专栏
D
D
回复
0
查看
862
DelphiTeacher的专栏
D
D
回复
0
查看
702
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部