Bei Onload Perl Skript ausführen
Alex
- javascript
Hallo,
kann man im BODY Tag eine Anweisung definieren, die ein Perl Skript startet?
<body onload="javascript:'http://localhost/testpl'">
So was in der Art.
Weiss jemand ob und wenn ja wie die Syntax lautet?
Grüsse
Alex
Hallo,
kann man im BODY Tag eine Anweisung definieren, die ein Perl Skript startet?
<body onload="javascript:'http://localhost/testpl'">
So was in der Art.
Weiss jemand ob und wenn ja wie die Syntax lautet?
hallo,
perl wird doch auf dem _server_ ausgeführt. Und wie soll man daher vom
_client_ aus eine perl-funktion aufrufen? anders herum ist es nur möglich.
allerdings gibt es abhilfen, wie zB AJAX, welches sich über ein bestimmtes
protokoll mit dem server verbindet und geforderte daten transferriert.
doch wird hierfür (im IE) activex benötigt.
Dieter
perl wird doch auf dem _server_ ausgeführt. Und wie soll man daher vom
_client_ aus eine perl-funktion aufrufen? anders herum ist es nur möglich.
Warumn nicht? Ich habe mit PHP mal ein Bild erzeugt (Counter), das vom Client aufgerufen wurde.
Oder im <iframe> ein PHP- Programm aufgerufen.
Man könnte doch auch ein Programm starten, dass irgendwas anderes macht, z.B. Mails versendet.
Kalle
hallo,
Warumn nicht? Ich habe mit PHP mal ein Bild erzeugt (Counter),
das vom Client aufgerufen wurde.
Mag ja sein, dass Du ein Bild erzeugt hast, allerdings geschah
dieses dann auf dem _server_, und nicht auf dem _client_.
Oder im <iframe> ein PHP- Programm aufgerufen.
Ist ja schön und gut, aber dort gilt das selbr Spiel. Ohne einen
neuen Request lassen sich auch hier keine Daten vom Server holen.
Man könnte doch auch ein Programm starten, dass irgendwas anderes
macht, z.B. Mails versendet.
Aber nicht mit JavaScript, zumindest nicht ohne einen neuen
HTTP-Request (Ausnahme wie bereits erwähnt Techniken wie zB AJAX)
abzusetzen. Und genau darum ging es ja.
Dieter
hallo,
Man könnte doch auch ein Programm starten, dass irgendwas anderes
macht, z.B. Mails versendet.
Aber nicht mit JavaScript, zumindest nicht ohne einen neuen
HTTP-Request (Ausnahme wie bereits erwähnt Techniken wie zB AJAX)
abzusetzen. Und genau darum ging es ja.
Verstehe deine Argumentation nicht. Ich kann doch per JavaScript zu einem beliebigen Zeitpunkt (z.B. bei onLoad) eine neue Seite aufrufen, im selben oder im neuen Fenster.
Und die neue "Seite" muss nicht unbedingt HTML- Code ausgeben. Vielleicht zählt sie nur die geduldigen Besucher, die den Aufbau einer endlosen Seite brav abgewartet haben ?
Ich glaube, du willst die bereits angezeigte Seite noch verändern. Das war aber gar nicht gefragt.
Kalle
Abend,
Verstehe deine Argumentation nicht. Ich kann doch per JavaScript
zu einem beliebigen Zeitpunkt (z.B. bei onLoad) eine neue Seite
aufrufen, im selben oder im neuen Fenster.
Ja klar, das ist die Technik des Internets.
Aber man ruft doch nicht extra ein neues Fenster auf, welches nur
Code ausführt (zumindest wenn man die User nicht vertreiben möchte).
'Nur ausführen' im Sinne von 'nichts anzeigen'.
Ich glaube, du willst die bereits angezeigte Seite noch
verändern. Das war aber gar nicht gefragt.
OK, gut das wir das geklärt haben ;-)
Dieter
Abend, Dieter
Aber man ruft doch nicht extra ein neues Fenster auf, welches nur
Code ausführt (zumindest wenn man die User nicht vertreiben möchte).
'Nur ausführen' im Sinne von 'nichts anzeigen'.
Warum nicht? Wenn nichts gesendet wird, bleibt die alte Seite doch wohl stehen. Das Skript kann z.B. die Datenbank auf Vordermann/frau bringen, und Mails verschicken während der Besucher in aller Ruhe die Seite durchliest und dann auf Links klickt.
Weiter oben haben wir dieses Thema doch:
"Cronjob mit PHP simulieren?"
Kalle
Tag Alex.
kann man im BODY Tag eine Anweisung definieren, die ein Perl Skript startet?
Indirekt mit Hilfe von SSI.
<body onload="javascript:'http://localhost/testpl'">
Ganz so funktioniert das nicht. Du plazierst die Include-Anweisung an einer beliebigen Stelle im HTML, sie wird vor Auslieferung durch den Server von diesem geparst und das Ergebnis (HTML-Code) an der Stelle eingefügt, wo die Anweisung steht.
Siechfred
hallo,
kann man im BODY Tag eine Anweisung definieren, die ein Perl Skript startet?
<body onload="javascript:'http://localhost/testpl'">
Ja, das kann man, allerdings ist es grober Unfug und lediglich eine theoretische Spielerei wert. Die Voraussetzung dafür ist, daß du auf deinem eigenen Rechner ebenfalls einen lokalen Server laufen hast und der aus einem Verzeichnis "testpl" irgendwelche Perl-Scripts aufrufen darf. Im Internet funktioniert das deshalb nicht, weil die meisten "Surfer" keinen eigenen lokalen Http-Server installiert haben, da passiert also gar nichts. Selbst wenn bei dir vielleicht etwas passiert. Oder es passiert etwas völlig anderes als bei dir.
Außerdem: "onload()" ist bereits ein EventHandler, da ist also die Notation von "javascript" irrelevant. Du könntest eine Funktion aufrufen, die bereits im Header notiert ist und schematisch einen Befehl wie
open("http://localhost/testpl/test.pl")
enthält.
Das Ganze kann tatsächlich funktionieren, ich wiederhole jedoch, daß es grober Unfug ist.
Was willst du denn erreichen? Mit so einer Kostruktion wird im günstigsten Fall ein zweites Browserfenster geöffnet, in dem das aufgerufene Script irgendwas tut. Wozu soll das nutze sein?
Grüße aus Berlin
Christoph S.
Hi Christoph,
ich will ein Cookie setzen. Und das Problem ist, dass ich keine Leerseite zurückgeben will.
Un daher will ich bei OnOpen eon Perl Skript ausführen lassen. Die Ausgabe will ich in ein "Blind"-Frame umleiten.
Bye
Alex
ich will ein Cookie setzen. Und das Problem ist, dass ich keine Leerseite zurückgeben will.
du kannst jederzeit ein cookie setzen und wieso musst du dann eine Leerseite zurückgeben.
Un daher will ich bei OnOpen eon Perl Skript ausführen lassen. Die Ausgabe will ich in ein "Blind"-Frame umleiten.
Du weisst wann der onload eintritt?
Nach dem vollstäöndigen laden der Seite und aller Bilder.
wieso kannst du kein cookie beim anzeigen der Seite setzen?
Struppi.
Hi Struppi,
"Du kannst jederzeit ein cookie setzen und wieso musst du dann eine Leerseite zurückgeben."
Weil man doch immer ein Header senden muss, um ein Cookie zu setzen:
my $cookie = cookie(-NAME => $cookname,
-VALUE => $favorite,
-EXPIRES => "+2y");
print header(-COOKIE => $cookie);
Oder sehe ich da was falsch?
Bye
Alex
"Du kannst jederzeit ein cookie setzen und wieso musst du dann eine Leerseite zurückgeben."
Weil man doch immer ein Header senden muss, um ein Cookie zu setzen:
my $cookie = cookie(-NAME => $cookname,
-VALUE => $favorite,
-EXPIRES => "+2y");
print header(-COOKIE => $cookie);Oder sehe ich da was falsch?
Mit einem CGI Programm, nein. Aber warum sendest du dies nicht direkt wenn die Seite erstellt. wird?
Da du aber sowieso auf JS setzt kannst du auch mit JS jederzeit ein Cookie setzen.
Struppi.
Hi Struppi,
ich werde mein Skript umprogrammieren:
Cookies schreiben mit JS
lesen Cookies mot Perl
Grüsse
Alex
hallo,
ich will ein Cookie setzen.
Das ist zwar mit Perl durchaus möglich, aber es geht genausogut mit Javascript. Da du sowieso Javascript benutzt, solltest du auch dabei bleiben.
Und das Problem ist, dass ich keine Leerseite zurückgeben will.
Cookies haben mit dem Erscheinen oder Nichterscheinen von Seiten nichts zu tun.
Grüße aus Berlin
Christoph S.