AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser manipulieren???
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser manipulieren???

Ein Thema von vit4l · begonnen am 25. Jul 2008 · letzter Beitrag vom 1. Aug 2008
Antwort Antwort
vit4l

Registriert seit: 10. Jun 2008
72 Beiträge
 
#1

TWebBrowser manipulieren???

  Alt 25. Jul 2008, 12:10
Hallo,
ich habe ein Problem, vielleicht weiss jemand weiter.
Ich lade eine Webseite in ein TWebBrowser. Auf der geladenen Seite gibt es zwei ComboBoxen. Dabei reagiert die zweite ComboBox auf die Änderungen, die mit der ersten ComboBox vorgenommen werden. Wenn mann in der ersten ComboBox etwas auswählt, werden entsprechende Optionen in die zweite ComboBo geladen. Die Seite wird dabei nich aktualisiert. Aus der Quellcode der Seite sehe ich, dass es ein JavaScript ausgeführt wird (OnChange), wenn man eine Option aus der ersten ComboBox wählt. Soweit klar.

Nun möchte ich die Auswahl einer Option in der ersten ComboBox simulieren. Dabei führe ich mithilfe der Funktion ExecuteScript den JavaScript aus, das im normalen Fall bei der Auswahl einer Option ausgeführt wird. Dann möchte ich die in die zweite ComboBox geladenen Optionen in einer Schleife auslesen.

Leider ist das Problem, dass nicht immer die Richtige Option der zweiten KomboBox für die entsprechende Option der ersten KomboBox in meine TStringListe geschrieben werden.

Delphi-Quellcode:
var
  i, iMax, s, fMax, f: integer;
  strNameOption, strValue: string;
  TempDocument: IHTMLDocument2;
begin
  iMax := Form1.webBrowser1.OleObject.Document.Forms.Item(1).Elements.Item(WideString('makeVariant1.makeId')).Length;
  for i := 1 to iMax - 1 do
  begin
    strNameOption:= Form1.webBrowser1.OleObject.Document.Forms.Item(1).Elements.Item(WideString('makeVariant1.makeId')).Item(i).Text;
    strValue := Form1.webBrowser1.OleObject.Document.Forms.Item(1).Elements.Item(WideString('makeVariant1.makeId')).Item(i).value;
    Form1.webBrowser1.OleObject.Document.Forms.Item(1).Elements.Item(WideString('makeVariant1.makeId')).value := strValue;
    TempDocument := Form1.webBrowser1.Document as IHTMLDocument2;
    ExecuteScript(TempDocument, 'retrieveOption(' + strValue + ', "1")', 'JavaScript');
    Application.ProcessMessages;
    fMax := Form1.webBrowser1.OleObject.Document.Forms.Item(1).Elements.Item(WideString('makeVariant1.variantId')).Length;
    for f := 0 to fMax - 1 do
    strNameOption:= strNameOption+ ',' + Form1.webBrowser1.OleObject.Document.Forms.Item(1).Elements.Item(WideString('makeVariant1.variantId')).Item(f).Text;
    vlstListe.Add(strNameOption);
  end;
    vlstListe.SaveToFile('C:\test.txt');
    showMessage('wurde gespeichert....');
end;
Vielen Dank schon mal im Vorraus für eure Hilfe...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: TWebBrowser manipulieren???

  Alt 26. Jul 2008, 05:39
Hallo, könnte es sein, dass das Script noch nicht fertig ausgeführt wurde, zum Zeitpunkt wo du auf die 2. Combobox zugreifst?
Thomas
  Mit Zitat antworten Zitat
vit4l

Registriert seit: 10. Jun 2008
72 Beiträge
 
#3

Re: TWebBrowser manipulieren???

  Alt 1. Aug 2008, 12:09
Hallo Toms,
nein das kann nicht sein, da ich es jetzt bevor ich den Inhalt auslese erstmal überprüfe ob der Skript ausgeführt wurde, ich glaube es liegt einfach an der Komponente TWebBrowser. Naja trotzdem vielen Dank für dein Interesse.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz