Delphi-PRAXiS

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

la.reunion 9. Jul 2006 22:03

Re: Javascript values auslesen
 
Ja es geht mir NUR um den Quelltext kannst du mir ein beispiel zu den indys nenen wie ich das anstellen kann?

Das komsihce ist wenn ich es mit indys runterlad kommt ein anderer quelltext als wenn cih es mit dem firefox runter lade(rechtsklick -> seite speichern unter)

Irgendwie komisch

la.reunion 14. Jul 2006 19:55

Re: Javascript values auslesen
 
Kann mir da niemand helfen?

DGL-luke 14. Jul 2006 20:36

Re: Javascript values auslesen
 
also bei den indy gibts demos...

la.reunion 14. Jul 2006 21:20

Re: Javascript values auslesen
 
Mhh immernoch das gleiche Problem.
Wenn ich nur den qt aufrufe und speicher fehlt der entscheidende Teil.
Wenn ich jedoch die "Seite speicher unter" ist der entscheidende Teil dabei.

Kann ich das auch im Delphi irgendwie umsetzten?

DGL-luke 15. Jul 2006 13:29

Re: Javascript values auslesen
 
Na sag doch mal welcher entscheidende Teil?

la.reunion 20. Jul 2006 20:17

Re: Javascript values auslesen
 
hat alles gestimmt, das prob war nur das rs.dr.ag eine weiterleitung ist und nicht der eigentliche host!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 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