Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Javascript ohne TWebBrowser ausführen (https://www.delphipraxis.net/156005-javascript-ohne-twebbrowser-ausfuehren.html)

Schwedenbitter 16. Nov 2010 14:12

Javascript ohne TWebBrowser ausführen
 
Hallo,

ich lade aus meiner TK-Anlage Faxe runter. Hierzu gibt es bereit einen separaten Thread. Das funktioniert mittlerweile Dank Eurer Hilfe sehr gut, schnell und resourcenschonend.

Jetzt stehe ich aber vor dem Problem, dass ich die bereits abgerufenen Faxe löschen muss. In der TK-Anlage wird das über eine Weboberfläche gemacht. Diese wiederum löscht die Daten offenbar mittels Javascript, wobei <A CLASS='list' HREF='javascript:bttnDeleteEntry(3, 512, "77")';> entscheidend sein dürfte:
Code:
<A HREF='/fax/001/11_16_14_39_u_0003.exe'><IMG SRC='/images1/pict_cl_fax.gif' TITLE='Anzeigen (110 kB)' BORDER='0'></A><A HREF='/fax/001/11_16_14_39_u_0003.sff'><IMG SRC='/images1/pict_save.gif' TITLE='Speichern (37 kB)' BORDER='0'></A><A CLASS='list' HREF='javascript:bttnDeleteEntry(3, 512, "77")';><IMG SRC='/images1/pict_del_entry.gif' WIDTH='20' HEIGHT='17' BORDER='0' NAME='' TITLE='Eintrag löschen'></A>
Ich möchte ebenso wie beim Download gern auf TWebBrowser verzichten. Ich habe einige Ansätze gefunden, wie es damit geht.

Gibt es eine Möglichkeit, den Code ohne TWebBrowser auszuführen? Falls ja, bitte ich ausdrücklich um Hinweise.

Danke, Alex

s.h.a.r.k 16. Nov 2010 14:15

AW: Javascript ohne TWebBrowser ausführen
 
Schau mal nach, wie die JavaScript-Methode selbst aussieht. Ich denke fast, dass da mit AJAX gearbeitet wird, die dem Server ein gewisses Kommand zukommen lässt. Ohne die JavaScript-Methode können wir leider nichts anfangen.

--EDIT
Mein Ansatz wäre es nun, zu schauen, wie der Browser mit dem Server kommuniziert und das dann nachzubauen.

Schwedenbitter 16. Nov 2010 14:23

AW: Javascript ohne TWebBrowser ausführen
 
Hallo s.h.a.r.k,

Danke für die Antwort.
Zitat:

Zitat von s.h.a.r.k (Beitrag 1061932)
... zu schauen, wie der Browser mit dem Server kommuniziert und das dann nachzubauen.

Wie macht man so etwas? Wobei mich grundsätzlich erstmal das Abhören der Kommunikation interessiert. Unter Linux hätte ich da evtl. eine Idee. Aber unter Windows, wo das ganze Szenario spielt, bin ich ratlos.

wicht 16. Nov 2010 14:26

AW: Javascript ohne TWebBrowser ausführen
 
Mit Wireshark. Oder (etwas komfortabler wie ich finde) mit Fiddler..

s.h.a.r.k 16. Nov 2010 14:36

AW: Javascript ohne TWebBrowser ausführen
 
Schau doch einfach mal im Quellcode nach der JavaScript-Methode. Im Firefox öffnet dir Strg+U den Quellcode der Website. Dort (oder in den Unterdateien) kannst du die JS-Methode finden! Und bzgl. meiner Vermutung bzgl AJAX: Da reicht auf jedenfall die Firebug-Erweiterung für Firefox. Dort gibt es dann einen Tab "Netzwerk", wo man alles sieht, was man brauch. AJAX-Requests werden auch in der Konsole dargestellt, soweit ich weiß.

-- EDIT
Wireshark etc. wäre hier mit Kanonen auf Spatzen geschossen ;)

Schwedenbitter 16. Nov 2010 15:15

AW: Javascript ohne TWebBrowser ausführen
 
Danke. Ich habe jetzt Firebug installiert. Wie muss ich das benutzen?

Ich habe gemäß Deiner Anleitung den Tab "Netzwerk" gewählt. Dort gibt es nun die SubTabs "Alle | HTML | CSS | JS | XHR | Grafiken | Flash". Ich bin dann zu "JS" gewechselt und habe auf "Eintrag löschen" geklickt. Es wurde aber nichts angezeigt, was ich verwursten könnte.
Was mache ich verkehrt?

s.h.a.r.k 16. Nov 2010 15:21

AW: Javascript ohne TWebBrowser ausführen
 
Wenn das Netzwerk-Modul aktiviert ist, dann siehst du wie die Kommunikation zwischen Browser und Server abläuft, also welche Anfragen an den Server gehen und wie diese beantwortet werden. Nun navigiere im Browser eben auf die Seite und drücke den Löschen-Button. Wenn ein Seiten-Reload erfolgt, dann wird wohl nur ein GET-Request an den Server geschickt. Wenn kein Seiten-Reload erfolgt, dann ists wohl ein AJAX-Request.

Klickst du auf das Plus vor dem Delete-Request, dann kannst du einsehen, welche Daten an den Server geschickt werden. Und das kannst du nachbauen.

-- EDIT
Wenn Jabber oder ICQ hast, dann schick mir einfach eine PN, dann können wir das auch da klären.

Schwedenbitter 16. Nov 2010 16:12

AW: Javascript ohne TWebBrowser ausführen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von s.h.a.r.k (Beitrag 1061959)
Wenn ein Seiten-Reload erfolgt, dann wird wohl nur ein GET-Request an den Server geschickt. Wenn kein Seiten-Reload erfolgt, dann ists wohl ein AJAX-Request.

Es sieht nicht danach aus. Denn die Seite wird aller 3 Sek. neu geladen und das sehe ich im Reiter "HTML". Insoweit besteht auch das Problem, dass der von mir gewählte Eintrag bei der Aktualisierung den Focus verliert es sehr schnell unübersichtlich wird.

Zitat:

Zitat von s.h.a.r.k (Beitrag 1061959)
Klickst du auf das Plus vor dem Delete-Request, dann kannst du einsehen, welche Daten an den Server geschickt werden. Und das kannst du nachbauen.

Ich habe mal die Einträge als txt-Dateien angehängt. Ich kann allerdings nicht sehen, inwiefern ich da etwas benutzen könnte.

[EDIT]Ein Fax habe ich noch zum Löschen. Dann muss ich erst wieder warten, bis etwas bei uns eingeht :-)[/EDIT]

Jabber oder ICQ habe ich nicht und möchte ich auch nicht unbedint wegen dieser Sache hier installieren.

wicht 16. Nov 2010 16:44

AW: Javascript ohne TWebBrowser ausführen
 
Hinter dem "Eintrag löschen"-Knopf steht die JS-Funktion bttnDeleteEntry. Diese ist unten definiert in 02_Antwort.txt, die URL, die da aufgerufen wird, wäre dann "/vphone/vp-list-mailin.asp?mode=11&entry='+entry+'&rnr='+rnr+'&typ e='+type+'&read=" - dort müssen dann drei Parameter rein.. die müsstest du noch mitgeben bzw. herausfinden, was sie bedeuten :P

HTH

Schwedenbitter 16. Nov 2010 19:41

AW: Javascript ohne TWebBrowser ausführen
 
Zitat:

Zitat von wicht (Beitrag 1061978)
... dort müssen dann drei Parameter rein.. die müsstest du noch mitgeben bzw. herausfinden, was sie bedeuten :P

Nichts leichter als das. Denn die zu übergebenden Parameter stehen ja im html-Code (Siehe mein erster Post):
Code:
<A CLASS='list' HREF='javascript:bttnDeleteEntry(3, 512, "77")';> ... </A>
Wobei 3 für den Eintrag Nr. 3 steht, ich zur 512 keine Ahnung habe und "77" für Faxe steht. Die Anlage verwaltet auch Telefongespräche, Nachrichten etc. pp.

Wenn ich Dein Post also richtig verstehe, bedeutet das, dass ich Bezug nehmend auf mein obiges Beispiel "nur"
Code:
http://192.168.1.2/vphone/vp-list-mailin.asp?mode=11&entry=3&rnr=512&typ e="77"&read="
an den Server absetzen muss und der Eintrag ist gelöscht? Wie sende ich das ohne TWebBrowser? Muss ich da die '' bzw. "" mit angeben oder reicht das auch so?

Gruß & Dank, Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Seite 1 von 3  1 23      

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