Entwickler-Ecke
Internet / Netzwerk - Wie Browser öffnen und Daten per Post senden?
Max92 - Mo 03.09.07 19:29
Titel: Wie Browser öffnen und Daten per Post senden?
Hallo!
Bin hier gerade am programmieren und hänge an einer Stelle.
Ich möchte mit meinen Programm einerseits den Browser (externer Standardbrowser) öffnen und Links laden.
=> ShellExecute(handle, 'open',Pchar(url), nil, nil, SW_SHOW);
Hierbei kann ich ja die Seite mittels GET Anweisungen in der URL beeinflussen (falls unterstützt)
Jetzt möchte ich aber auch das Gleiche mit POST Anweisungen machen.
Also den Browser öffnen und NICHT ein Formular ausfüllen, sondern direkt die Ergebnisseite des Formulars laden, in dem ich beim Öffnen gleich die POST Anweisungen mitsende.
Mit der Suchfunktion bin ich nicht weit gekommen, aber vielleicht hat ja jemand eine Idee oder einen Link für mich.
Danke
Max92 - Sa 08.09.07 15:35
hat denn niemand eine idee oder eine alternative?
jakobwenzel - Sa 08.09.07 16:55
Mir würd da nur ne temporäre Datei einfallen, in der das ausgefüllte Formular steht und bei der im onLoad von Javascript die submit-Methode des Formulars ausgerufen wird.
Wenn du diese Datei dann im Browser öffnest, sollte es klappen.
Max92 - Sa 08.09.07 23:15
Danke für den Denkanstoss
Hier der Lösungsansatz für Leute, die das gleiche Problem haben:
Erst mal den HTML-Quelltext in eine Stringlist
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| <form name="submitter" method='post' action='http://www.die-webseite.de/das-entsprechende.php' enctype='multipart/form-data'> <input type="hidden" name="name" value="wert"> <input type="hidden" name="name2" value="wert2"> ... <input type='submit' name='ok' value="WEITER"></form> <script type="text/javascript"> function AbGehts () {document.submitter.submit();} window.setTimeout("AbGehts()", 500);</script> |
Das Javascript sorgt für eine automatische Weiterleitung nach 500 Milisekunden.
Wer Javascript aus hat, sieht einen "Weiter"-Button.
Auf restlichen HTML-Code kann man verzichten...
Im Delphi speichern wir den Spaß nun als HTML in den temporären Ordner des Users und öffnen ihn mit dem Browser
Delphi-Quelltext
1: 2:
| htmlstrings.SaveToFile(SysUtils.GetEnvironmentVariable('temp')+'\tempfilename.html'); ShellExecute(handle, 'open',Pchar(SysUtils.GetEnvironmentVariable('temp')+'\tempfilename.html'), nil, nil, SW_SHOW); |
Fertig!
jakobwenzel - Mo 10.09.07 13:45
Ruf deine Funktion doch im OnLoad-Ereignis vom Body auf - da klappts dann auch korrekt, wenn nach ner halben Sekunde deine Seite noch nicht komplett da ist, und es wird auch keine unnötige Pause eingelegt.
GTA-Place - Mo 10.09.07 15:32
Schöne Lösung. Wär dafür, dass das in die Library verschoben wird :!:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!