+(PERL) JavaScript via CGI-Script dynamisch generieren
Stefan Muenz
- javascript
0 n.d. parker0 Cheatah0 Calocybe
0 timothy0 Michael Schröpl0 Bio0 random0 Daniel Thoma
Liebe Forumer,
ein treuer Leser von SELFHTML hat mir heute einen interessanten Trick gemailt, den vielleicht noch nicht jeder kennt. Interessant ist das vor allem, wenn man kein SSI hat.
In einer HTML-Datei einfach den typischen Befehl zum Einbinden einer externen JavaScript-Datei notieren, allerdings mit einer kleinen Abweichung im src-Attribut:
<script language="JavaScript" src="cgi-bin/datei.pl">
</script>
Dadurch wird in einer HTTP-Umgebung das Perlscript ausgefuehrt. Dieses muss mit dem einleitenden HTTP-Header-Befehl:
print "Content-type: text/javascript\n\n";
JavaScript-Code an den Browser senden, also etwa Anweisungen wie:
print "document.write("Ein $Skalar");\n";
Ausprobiert hab ich's jetzt nicht ... aber der Mailschreiber hat mir versichert, dass er auf diese Weise die Ausgabe einer Zugriffsstatistik seiner Webseiten realisiert hat.
viele Gruesse
Stefan Muenz
hi,
<script language="JavaScript" src="cgi-bin/datei.pl">
[..] Zugriffsstatistik seiner Webseiten realisiert hat.
hmm, wenn ich mir das recht ueberlege, hat der Kollege dann eine Zugriffsstatistik, die alle User mit eingeschaltetem Javascript erfasst .-))
cua
n.d.p.
Hi,
In einer HTML-Datei einfach den typischen Befehl zum Einbinden einer externen JavaScript-Datei notieren, allerdings mit einer kleinen Abweichung im src-Attribut:
Du meinst sowas wie in <../../sfarchiv/1999_2/t03903.htm#a18873>? ;-)
print "Content-type: text/javascript\n\n";
application/x-javascript habe ich seinerzeit irgendwo als gültig herausgefunden. Wenn text/javascript auch funktioniert, liegt das vermutlich daran, daß der MIME-Type nicht wirklich beachtet wird ;-)
Ausprobiert hab ich's jetzt nicht ... aber der Mailschreiber hat mir versichert, dass er auf diese Weise die Ausgabe einer Zugriffsstatistik seiner Webseiten realisiert hat.
Doch, da hat er schon recht mit.
Cheatah
Hi hi!
Du meinst sowas wie in <../../sfarchiv/1999_2/t03903.htm#a18873>? ;-)
Ja, der Trick ist schon wahnsinnig neu... ;-)
print "Content-type: text/javascript\n\n";
application/x-javascript habe ich seinerzeit irgendwo als gültig herausgefunden. Wenn text/javascript auch funktioniert, liegt das vermutlich daran, daß der MIME-Type nicht wirklich beachtet wird ;-)
Siehe <../../sfarchiv/1999_2/t02866.htm>. NS 3 *braucht* application/x-javascript, den spaeteren Browsern ist es egal.
Ausprobiert hab ich's jetzt nicht ... aber der Mailschreiber hat mir versichert, dass er auf diese Weise die Ausgabe einer Zugriffsstatistik seiner Webseiten realisiert hat.
Und ich einen einfachen Textcounter. War sozusagen mein Perl-Debuet, also mein erstes kleines Scriptchen (man findet meine Anfaengerfragen dazu sicher noch irgendwo im Archiv). Oh je, wenn ich den Code heute ansehe... Aber n.d. hat recht, zaehlt natuerlich nur die Besucher mit angeschaltetem JS1.1 (externe JS erst ab NS3 und IE4).
So long
Ausprobiert hab ich's jetzt nicht ... aber
es funzt !!!
test.pl
#!perl.exe
print "Content-type: text/javascript\n\n";
print <<"EOT";
function doit()
{
alert("Hello World");
}
EOT
test.html
<html>
<head>
<title>Untitled</title>
<script language="JavaScript" src="http://localhost/autoselfhtml/test.pl">
</script>
</head>
<body>
<button name="but" onClick="doit()">Do it !!!</button>
</body>
</html>
Bye
Timothy
P.S. nur so als Schnellschuß!!!
Hallo Stefan,
ein treuer Leser von SELFHTML hat mir heute einen interessanten Trick gemailt, den vielleicht noch nicht jeder kennt. Interessant ist das vor allem, wenn man kein SSI hat.
interessanter Provider, der SSI sperrt und CGI freischaltet ...
mfG - Michael
Hi,
interessanter Provider, der SSI sperrt und CGI freischaltet ...
kommt IMHO öfter vor als umgekehrt. SSI hat vermutlich einen leichten "erweitertes CGI"-Flair, zumal man damit auch Scripts starten kann - von der Syntax her.
Wie sinnig das ist, sei mal dahingestellt :-)
Cheatah
Hi,
interessanter Provider, der SSI sperrt und CGI freischaltet ...
kommt IMHO öfter vor als umgekehrt. SSI hat vermutlich einen leichten "erweitertes CGI"-Flair, zumal man damit auch Scripts starten kann - von der Syntax her.
bitte verbreite nicht auch noch Du diesen Unfug ... nein, mit defensivem SSI alleine kann man keine CGIs starten. Nur mit SSI-EXEC.
Michael
Sup!
Ich frage mich wirklich, warum der Validator <script language="JavaScript">
auf dieser Seite
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.asemann.de%2Fclan%2Flaunch.html
okay findet (XHTML)
und auf dieser (HTML 4.01)
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.asemann.de%2Fclan%2Fnexusclan.html
nicht... wenn ich das durch <script type="text/javascript"> ersetze, wird es ein Fehler weniger, wenn ich mich recht erinnere.
Ist nicht HTML 4.01 Untermenge von XHTML?
Oder habe ich gerade was uebersehen?
Grüsse,
Bio
hallo!
du verwendest "HTML 4.01 Strict", soweit ich weiß, sind ort keine scriptbereiche erlaubt. hast du es schonmal mit "HTML 4.01 Transitional" versucht?
random
Hallo Bio,
Ist nicht HTML 4.01 Untermenge von XHTML?
Oder habe ich gerade was uebersehen?
HTML ist keine untermenge von XHTML sondern lediglich von SGML.
XHTML ist eine Untermenge von XML was eine untermenge von SGML ist.
Tschüs
Daniel