把出網頁span欄位的名稱 |
缺席
|
lee5100954
一般會員 發表:15 回覆:10 積分:5 註冊:2005-11-22 發送簡訊給我 |
我網頁的內容是
[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
</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 發送簡訊給我 |
已解決,方式如下:
[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] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |