Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Javascript values auslesen (https://www.delphipraxis.net/72873-javascript-values-auslesen.html)

la.reunion 8. Jul 2006 12:47


Javascript values auslesen
 
Hallo ich ahbe eine funktion um ein Java-Script value asuzulesen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  webbrowser1.Navigate('http://www.dasbinich.info/myred/delphi/index.html');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage('Value lautet: ' + webBrowser1.OleObject.Document.Forms.item
  (0).Elements.item('uri').Value);
end;

Dann kommt immer als fehlermeldung EAccessViolation blablabla....
Was sit da los?

[edit=SirThornberry]Delphi-Tags ergänzt. Mfg, SirThornberry[/edit]

Phoenix 8. Jul 2006 12:56

Re: Javascript values auslesen
 
Einfachste Methode (vom Prinzip her):

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
 a, b, c, d, e, f, g: Variant;
begin
  a := webBrowser1.OleObject;
  b := a.Document;
  c := b.Forms;
  d := c.item[0];
  e := d.Elements;
  f := e.item['uri'];
  g := f.Value;
  ShowMessage('Value lautet: ' + g);
end;

Du brichst also jede Zuweisung auf eine einzelne Anweisung runter und dann debuggst Du bei welchem Zugriff genau die Zugriffsverletzung auftritt. Dann muss Du nur bei dem Objekt auf das Du zugreifst nochmal nachlesen wie der Zugriff genau zu erfolgen hat.

la.reunion 8. Jul 2006 12:57

Re: Javascript values auslesen
 
Danke werde ich gleich mal probieren!

LG La.Reunion


EDIT: hier kommt der fehler!!!

Delphi-Quellcode:
  e := d.Elements;
aber wie kann cih jetzt gucken was falsch ist?

Das codebeispiel kommt von

http://www.swissdelphicenter.ch/de/showcode.php?id=1847

Ydobon 8. Jul 2006 13:05

Re: Javascript values auslesen
 
Irendwie finde ich casten sympatischer, da sieht man wenigsten wo man ist.

Hast du dir die Webseite einmal angesehen? Wenn dort kein Formular ist, kann es auch keine Elemente haben.

la.reunion 8. Jul 2006 13:09

Re: Javascript values auslesen
 
doch da hats ein formular
....dieses hat kein name, deswegen den parameter 0


HIer könnt ihr euch davon überzeugn das ein formular da ist
http://rs.dr.ag/y0/Mnk4MXl4ODc-d/teter.txt.html

ka woran das dann leigt es hatte ja schoneinmal funktioniert aber eben nur 1 tag!


EDIT: Was ist casten?

Ydobon 8. Jul 2006 20:41

Re: Javascript values auslesen
 
Was ist das denn für einen merkwürdige Seite. Der Button steckt in irgendeinem iframe und wird erst erzeugt?

Wenn du mal per Einzelschritt den Text von Phoenix durchgehst (runde statt eckige Klammern) siehst du als Wert für d $000000. Damit lässt sich kein Element finden. Du kannst es ja einmal mit der hiesigen Suchseite http://www.delphipraxis.net/search.php mit form-Tag vergleichen.

Mit casten meinte ich das Arbeiten mit den richtigen Typen und nicht nur mit Variant, also hier von IWebBrowser2 bis IHTMLInputElement. Gibt zwar einiges mehr zu Schreiben, dafür hilft aber der Editor dabei und man weiß immer wo man zur Fehlersuche nachschauen muss.

la.reunion 8. Jul 2006 22:05

Re: Javascript values auslesen
 
ich ahbe mir das mit dem formtag angeguckt bin aber darasu nciht schleu geworden wie ich damit mein problem lösen kann.
Kann mir da jemand auf die sprünge helfem?
WOher weisst du das das d 0000000 ist?

Ydobon 8. Jul 2006 23:38

Re: Javascript values auslesen
 
Tut mir leid, aber es sollte dir auch nicht helfen, sondern lediglich zeigen, dass es so nicht geht.

Diese Seite ist wirklich, ähm, sonderbar. Das Formular mit dem Button wird erst so
document.write("<form target=_blank action=http://deutschland-ist-weltmeister.dr.ag method=post><input type=hidden name=uri value=/files/24814387/teter.txt><input type=submit name=dl.start value=teter.txt></form>");
erzeugt. Keine Ahunung, ob man auf so etwas überhaupt mit einem Programm zugreifen kann, jedenfalls nicht so einfach, sonst wäre das Formular gefunden worden.

Das mit d ist doch einfaches Debuggen, Haltepunkt an passender Stelle setzen, mit der Maus über die Variable oder den Ausdruck und Delphi zeigt, wenn es es auflösen kann, den aktuellen Wert an.

la.reunion 9. Jul 2006 21:39

Re: Javascript values auslesen
 
okay danke
aber vlt könnte man es so machen indem amn erst die seite in einem twebbrowser lädt und wenns ie fertig geladen sit den quelltext speichert und ausliest oder?
Das müsste doch eigentlcih funtkionieren.

Oder meinst du das das erst erzeugt wird wenn man den button drückt?

Lg La.Reuninon

SirThornberry 9. Jul 2006 21:52

Re: Javascript values auslesen
 
dann solltest du gleich die Indy-Komponenten nehmen wenn es dir nur um den Quelltext geht und nicht um Darstellung


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Seite 1 von 2  1 2      

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