全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2219
推到 Plurk!
推到 Facebook!

把出網頁span欄位的名稱

缺席
lee5100954
一般會員


發表:15
回覆:10
積分:5
註冊:2005-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-10 22:19:28 IP:220.141.xxx.xxx 訂閱
我網頁的內容是
[code xml]
<head><br /><meta http-equiv="Content-Type" content="text/html; charset=big5" /><br /></head></font>
<body><br /><form id="form1" name="form1" method="post" action="index.htm"><br />

abc
testteset



<input type="text" name="textf" id="textf"/><br />
</form></font>
</body><br /></html></font>
[/code]

我想要取得span的欄位名稱,但用下面的程式去跑,抓不到span,請問該怎麼改寫下面的程式
[code delphi]
function TForm1.GetFormByNumber(document: IHTMLDocument2;
formNumber: integer): IHTMLFormElement;
var
forms: IHTMLElementCollection;
begin
forms := document.Forms as IHTMLElementCollection;
if formNumber < forms.Length then<br /> result := forms.Item(formNumber,'') as IHTMLFormElement
else
result := nil;
end;

function TForm1.GetFormFieldNames(fromForm: IHTMLFormElement): TStringList;
var
index: integer;
field: IHTMLElement;
input: IHTMLInputElement;
select: IHTMLSelectElement;
text: IHTMLTextAreaElement;
span : IHTMLSpanElement;
begin
result := TStringList.Create;
for index := 0 to fromForm.length do
begin
field := fromForm.Item(index,'') as IHTMLElement;
if Assigned(field) then
begin
if field.tagName = 'INPUT' then
begin
// Input field.
input := field as IHTMLInputElement;
result.Add(input.name);
end
else if field.tagName = 'SELECT' then
begin
// Select field.
select := field as IHTMLSelectElement;
result.Add(select.name);
end
else if field.tagName = 'TEXTAREA' then
begin
// TextArea field.
text := field as IHTMLTextAreaElement;
result.Add(text.name);
end
Else
Begin
result.Add(field.tagName);
result.Add('aaaa');
End;
end;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
document: IHTMLDocument2;
theForm: IHTMLFormElement;
index: integer;
fields : TStringList;
begin
theForm := GetFormByNumber(WebBrowser1.Document as IHTMLDocument2,0);
fields := GetFormFieldNames(theForm);

for index := 0 to fields.count-1 do
ShowMessage('Field ' IntToStr(index) ' called ' fields[index]);
end;
[/code]

lee5100954
一般會員


發表:15
回覆:10
積分:5
註冊:2005-11-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-24 09:21:50 IP:220.228.xxx.xxx 訂閱
已解決,方式如下:
[code delphi]
function TForm1.GetFieldNames(document:IHTMLDocument2): TStringList;
var
index: integer;
field: IHTMLElement;
input: IHTMLInputElement;
select: IHTMLSelectElement;
text: IHTMLTextAreaElement;
begin

result := TStringList.Create;
for index := 0 to (document.all.length)-1 do
begin
field := document.all.Item(index,'') as IHTMLElement;
if Assigned(field) then
begin
if field.tagName = 'INPUT' then
begin
// Input field.
input := field as IHTMLInputElement;
result.Add(input.name);
end
else if field.tagName = 'SELECT' then
begin
// Select field.
select := field as IHTMLSelectElement;
result.Add(select.name);
end
else if field.tagName = 'TEXTAREA' then
begin
// TextArea field.
text := field as IHTMLTextAreaElement;
result.Add(text.name);
end
else if field.tagName = 'SPAN' then
Begin
// span
result.Add(field.id);
End
else if field.tagName = 'DIV' then
Begin
//div
result.Add(field.id);
End;
end;
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
document: IHTMLDocument2;
fields : TStringList;
index: integer;
begin
document := WebBrowser1.Document as IHTMLDocument2;
fields := GetFieldNames(document);
for index := 0 to fields.Count-1 do
ShowMessage('Field ' IntToStr(index) ' called ' fields[index]);
end;
[/code]
系統時間:2024-04-25 22:52:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!