twebbrowser网页中如何识别出指定控件所在的form |
答題得分者是:Stallion
|
tzjwj
一般會員 發表:28 回覆:30 積分:11 註冊:2005-05-09 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
tzjwj
一般會員 發表:28 回覆:30 積分:11 註冊:2005-05-09 發送簡訊給我 |
谢谢,问题得到初步解决。但是调试程序时发现两个网页存在两种情况
一为有frames,二为无frames。有frames网页使用以下代码:
frameDsp:IDispatch;
frameDsp := WebBrowser1.OleObject.Document.Frames.item(0);
对于无frames网页产生出错提示.
无frames的网页,我使用以下代码调试成功:
form : IHTMLFormElement ;
d:IHTMLDocument2 ;
d := document as IHTMLDocument2;
form := d.forms.item(varempty,01) as IHTMLFormElement;
请问如何自动识别?
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
tzjwj
一般會員 發表:28 回覆:30 積分:11 註冊:2005-05-09 發送簡訊給我 |
经过几日大大的指点,我编写了一个函数。
该函数可以自动识别对应frames,并得到指定控件名对应的网页。
inputurl:控件名
function handle_html_value(inputurl: string): IHTMLDocument2;
var
form : IHTMLFormElement;
formelement:IHTMLElement;
d:IHTMLDocument2 ;
frameDsp:IDispatch;
framewin:IHTMLWindow2;
framecheck:boolean;
tempcount:integer;
begin
d := WebBrowser1.document as IHTMLDocument2;
if d.Frames.Length > 0 then
framecheck:=true
else
framecheck:=false;
if framecheck then
begin
for tempcount:=0 to d.Frames.length-1 do
begin
frameDsp := WebBrowser1.OleObject.Document.Frames.item(tempcount);
frameWin := frameDsp as IHTMLWindow2;
d:=frameWin.Document as IHTMLDocument2;
form:=frameWin.Document.forms.item(varempty,01) as IHTMLFormElement;
if form=nil then
continue;
formelement:=form.item(inputurl,0) as IHTMLElement;
if formelement<>nil then
break;
end;
frameDsp:=nil;
frameWin:=nil;
form:=nil;
formelement:=nil;
if formelement=nil then
begin
d:=nil;
result:=nil;
exit;
end;
end;
result:=d;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |