Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Webbrowser Formularfelder überprüfen

  Alt 27. Jan 2008, 14:08
Hallo Lars,

willst du in allen Input-Feldern einer Form oder eines Document suchen?

Delphi-Quellcode:
function FindInputElement(container: IDispatch; const subText: string): IHTMLInputElement;
var
  i: Integer;
  ec: IHTMLElementCollection;
  dummy: IDispatch;
begin
  if Succeeded(container.QueryInterface(IID_IHTMLFormElement, dummy)) then
    ec := (container as IHTMLFormElement).tags('input') as IHTMLElementCollection
  else if Succeeded(container.QueryInterface(IID_IHTMLDocument3, dummy)) then
    ec := (container as IHTMLDocument3).getElementsByTagName('input')
  else begin
    Result := nil;
    Exit;
  end;
  for i := 0 to ec.length do
    if i = ec.length then
      Result := nil else
    begin
      Result := ec.item(i, null) as IHTMLInputElement;
      if AnsiContainsText(Utf8ToAnsi(Result.value), subText) then
        Break;
    end;
end;
Testen kannst du so:

Delphi-Quellcode:
var
  ie: IHTMLInputElement;
begin
  // find first element in document
  with WebBrowser do
    ie := FindInputElement(Document, 'b');

  // find first element in some form
  with WebBrowser.Document as IHTMLDocument2 do
    ie := FindInputElement(forms.item(0, null), 'b');
end;
Grüße vom marabu
  Mit Zitat antworten Zitat