Serverseitig feststellen, ob JavaScript zugelassen ist
UlfL
- programmiertechnik
Hi zusammen,
gibt es eine Möglichkeit, serverseitig festzustellen (in Perl oder was auch immer), ob der Client JavaScript eingeschaltet hat oder nicht?
Gruß,
UlfL
Hi zusammen,
Hallo,
gibt es eine Möglichkeit, serverseitig festzustellen (in Perl oder was auch immer), ob der Client JavaScript eingeschaltet hat oder nicht?
Nein.
Wie auch?
Selbst wenn Du mit Javascript irgendwas in eine form reinschreibst und damit einen neuen Request erzeugst, kannst Du damit nur erkennen, daß bei der vorherigen Seite Javascript erlaubt war.
Der User kann es sich aber bei der nächsten Seite schon wieder anders überlegen. Z.B. der Internet Explorer erlaubt es, das Scripting auf "Nachfragen" zu schalten, bei jeder Seite mit Script wird der User dann extra gefragt...
Gruß,
UlfL
Andreas
Hi Andreas,
Nein.
Wie auch?
Ich kann mir an frühere Webstatistiken erinnern, wo über in Webseiten eingebettete Grafiken nicht nur ermittelt wurde, ob JavaScript eingeschaltet ist, sondern auch welche Plugins installiert waren, und was für eine Auflösung der Bildschirm des Users hat. Aber deiner Meinung nch geht sowas nicht?
Gruß,
UlfL
Hi Andreas,
hallo UlfL,
Nein.
Wie auch?
Ich kann mir an frühere Webstatistiken erinnern, wo über in Webseiten eingebettete Grafiken nicht nur ermittelt wurde, ob JavaScript eingeschaltet ist, sondern auch welche Plugins installiert waren, und was für eine Auflösung der Bildschirm des Users hat. Aber deiner Meinung nch geht sowas nicht?
wenn du dir mal den Quellcode, der bei diesen "Grafikcountern" eingebetten werden muss, anschaust, dann wirst du auf das gleiche Prinzip stoßen, wie es dir auch schon u.a. Christian Seiler vorgeschlagen hat: in der Seite, in der die Grafik reingeladen wird, wird mittels einem kleinen Script ermittelt, ob JS erlaubt ist und übergibt dies mittels Var an die Grafik-URL.
Gruß,
UlfL
MfG Benne
Hi zusammen,
gibt es eine Möglichkeit, serverseitig festzustellen (in Perl oder was auch immer), ob der Client JavaScript eingeschaltet hat oder nicht?
Gruß,
UlfL
Hi UlfL
Ich benutze ein script auf meiner homepage welches mir mitteilt ob JavaScript aktiviert ist oder nicht. Ich gehe dazu folgendermassen vor:
<html>
<head>
<title>Dbla bla</title>
<meta http-equiv="content-type" content="mime-type; charset=ISO-8859-1"/>
#Hier füge ich ein autorefresh ein wenn die Seite das erste mal geladen wird. Tritt der autorefresh in kraft wird die variable "noJS=1" weitergegeben (kein JavaScript)
<?php if (!(ISSET($noJS))) echo "<meta http-equiv="refresh" content="2; URL=index.php?noJS=1"/>"; ?>
</head>
#Hier füge ich ein script ein welches automatisch sich selber nochmal aufruft aber mit der variable "$noJS=0" angehängt (hat javascript)
<?php
if (!(ISSET($noJS)))
{
echo "
<body>
<script type="text/javascript">
<!--
window.location.href = "index.php?noJS=0";
//-->
</script>
</body>
";
}
else
{
#Hier kannste dann deine seite reintun und weisst anhand der variable $noJS ob JavaScript aktiviert ist oder nicht.
}
?>
</html>
Hallo Christoph,
Ich benutze ein script auf meiner homepage welches mir mitteilt ob JavaScript aktiviert ist oder nicht.
falls Du damit meinst, dieses PHP-Script würde Dir mitteilen, ob
JS (de)aktiviert ist, dann irrst Du gewaltig. Einzig diese Zeile
ist dafür verantwortlich:
window.location.href = "index.php?noJS=0";
der Rest ist Drumherum, Du könntest da statt PHP jede andere server-
seitige Technologie oder eben auch "nur" HTML benutzen, der Effekt
wäre der gleiche.
Interessant zu diesem Thema ist auch dieser Beitrag:
http://www.praast.de/ffq/abfrage.htm#an
Eine clientseitige Technologie kann man auch nur mit dieser oder
einer anderen [1] clientseitigen Technologie abfragen. Der Server
erfährt überhaupt nicht, ob ich JavaScript (de)aktiviert habe,
er kann es allein durch bestimmte Reaktionen meines Browsers
vermuten. Der Server kann nicht wissen, ob ich index.php?noJS=0
über die JavaScript-Weiterleitung erreicht habe oder diese Seite
manuell aufgerufen habe. Aus dieser Überlegung heraus wird auch
deutlich, warum serverseitige Technologien hier irrelevant sind.
Übrigens habe ich mir erlaubt, mal Deine Website zu besuchen und
finde da nur eine komplett weiße Seite vor. Vielleicht sollltest
Du sie noch etwas mit Inhalt füllen ;-)
Viele Grüße,
Stefan
[1] Als clientseitige Technologie kommt neben JavaScript selbst
vielleicht auch activeX oder Java in Frage, aber da kenne ich
mich zuwenig in diesen Konzepten und ihren Zugriffsmöglich-
keiten aus.
Hi Stefan
Mir ist klar dass der Server zu keinem Zeitpunkt wissen kann ob JavaScript deaktiviert ist oder nicht wie gesagt kann er es vermuten indem ich bestimmte reaktionen hervorrufe bei denen ich die selektion machen kann.
Das Prinzip funktioniert eigentlich recht gut. Sollte der Benutzer dann zwischendurch JavaScript wieder Aktivieren oder Deaktivieren ist das dem Server egal, denn er hat Ihn am anfang Kategorisiert --> javaScript oder kein JavaScript.
Ich denke dass diese lösung die idealste ist um ALLE benutzer (auch die komischen die JavaScript deaktiviert haben) eine ansprechende - und vor allem erreichbare - webseite zu präsentieren.
Ich tu das auch nur wegen dem bildchen hier:
<img src="http://www.w3.org/WAI/wcag1A.gif" border=0 alt="">
Sonst wären mir leute mit deaktiviertem JavaScript egal :-)
Was mich noch interessieren würde ist mit welchem Browser Du auf meiner seite warst und nur ne weisse seite gesehen hast. Habs mit vielen versionen getestet (Netscape 7, Mozilla 1, IE 6, Opera 6) für Mac und PC.
Gruss Christoph
Hallo Christoph,
(auch die komischen die JavaScript deaktiviert haben)
warum bin ich komisch, wenn ich in meinem Opera JavaScript deaktiviert
habe? ;-)
Zum einen sind da die vielen JavaScript-Dinge im WWW, die mich oft
nerven und die ich so konsequent unterbinde, zum anderen ist da die
nicht gerade optimale JavaScript/DHTML-Unterstützung von Opera,
wodurch man öfter mal Probleme bekommt ("Falscher Browser").
Also habe ich es deaktiviert und wenn mir eine Website interessant
erscheint, wechsle ich zu Mozilla, da ist es an.
Ich tu das auch nur wegen dem bildchen hier:
<img src="http://www.w3.org/WAI/wcag1A.gif" border=0 alt="">
Lies Dir diese Richtlinien mal durch, da stehen afaik auch einige
Hinweise zu der Verwendung von Frames und ähnlichen Barierren ;-)
Sonst wären mir leute mit deaktiviertem JavaScript egal :-)
Nicht nett, aber Du solltest zumindest den Mut haben, es diesen
Besuchern mitzuteilen. Einfach so ins Abseits stellen ist völlig
unprofessionell.
Was mich noch interessieren würde ist mit welchem Browser Du auf meiner seite warst und nur ne weisse seite gesehen hast. Habs mit vielen versionen getestet (Netscape 7, Mozilla 1, IE 6, Opera 6) für Mac und PC.
Opera 6.04: JavaScript, Referrer, Cookies und Weiterleitung aus
Naja, wenn ich jetzt mal eben Frames ausschalte, sieht Deine Web-
site auch nicht mehr so toll aus (*g*), aber die habe ich eigent-
lich immer an, also keine Sorgen ;-)
Wie ich schon sagte, es spricht nix dagegen, dass Du bestimmte
Voraussetzungen an Deine Besucher stellst, aber wer die nicht er-
füllt, sollte höflich darauf hingewiesen werden. Noch besser ist
natürlich, Alternativen anzubieten oder auf den Einsatz dieser
Sachen zu verzichten, wo möglich+sinnvoll.
Die beiden verlinkten Validator-Buttons finde ich btw Unfug, damit
wird nur der W3C-Server unnötig belastet und wenn die da stehen,
dann glaube ich es dem Website-Betreiber auch. Eine andere Frage
ist, welche Deiner Besucher aus diesen Buttons überhaupt irgend-
einen Nutzen ziehen.
Viele Grüße,
Stefan
Hallo Christoph,
Hi Stefan
(auch die komischen die JavaScript deaktiviert haben)
warum bin ich komisch, wenn ich in meinem Opera JavaScript deaktiviert habe?
Nah ok da kann ichs noch verstehen. Die DOM/DHTML umsetzung von Opera ist im moment wirklich nur suboptimal und es funktionieren nicht wirklich viele Scripts. Aber bei Netscape/Mozilla und Explorer usern verstehe ich nicht wirklich wieso man das abschalten tut.
Meiner Meinung nach gehört mittlerweile JavaScript fest zum web und SEHR viele seiten gehen nicht mehr ohne.
Ich verstehe jedoch dass einige das trotzdem abschalten wenn sie auf MP3 suche oder auf SEX seiten surfen. Da kann es vorkommen dass so 2000-3000 neue fenster aufpoppen (Ich hab da mal recherchiert :0)
Zum einen sind da die vielen JavaScript-Dinge im WWW, die mich oft
nerven und die ich so konsequent unterbinde, zum anderen ist da die
nicht gerade optimale JavaScript/DHTML-Unterstützung von Opera,
wodurch man öfter mal Probleme bekommt ("Falscher Browser").
Also habe ich es deaktiviert und wenn mir eine Website interessant
erscheint, wechsle ich zu Mozilla, da ist es an.
"wechsle ich zu Mozilla, da ist es an" <-- damit gehörste schon nicht mehr zu den komischen Leuten, denn das ist ne ganz gute reaktion. Zeigt Toleranz :-)
Ich tu das auch nur wegen dem bildchen hier:
<img src="http://www.w3.org/WAI/wcag1A.gif" border=0 alt="">
Lies Dir diese Richtlinien mal durch, da stehen afaik auch einige
Hinweise zu der Verwendung von Frames und ähnlichen Barierren ;-)
Jo die passage bezüglich Frames hab ich grad heute intensiv durchgelesen. Damit das Teil -A konform ist muss man nur einen NOFRAMES tag definieren und die einzelnen FRAMES im <FRAME> tag via dem TITLE attribut benamsen so dann man drauskommt was welches frame macht. Die Navigation für nicht-Framer ist dann zwar scheisse aber sie ist dennoch surfbar und auf das kommts ja an bei dem Siegel, dass keine gruppen ausgeschlossen werden. Steht nirgens dass es auch gut ausschauen muss oder konfortabel ist.
Sonst wären mir leute mit deaktiviertem JavaScript egal :-)
Nicht nett, aber Du solltest zumindest den Mut haben, es diesen
Besuchern mitzuteilen. Einfach so ins Abseits stellen ist völlig
unprofessionell.
Muss ich doch nicht :-) auch anti-javascript surfer können auf meine seite. Haste sicher ausprobiert. Für jedes DHTML Script habe ich ein PHP pendent. Das ganze ist dann nicht ganz so flüssig aber genauso konfortabel.
Was mich noch interessieren würde ist mit welchem Browser Du auf meiner seite warst und nur ne weisse seite gesehen hast. Habs mit vielen versionen getestet (Netscape 7, Mozilla 1, IE 6, Opera 6) für Mac und PC.
Opera 6.04: JavaScript, Referrer, Cookies und Weiterleitung aus
Also für Mac wirste wohl nur den 5.0.498 er haben (jedenfalls für OS X für OS 9.x weis ich die version nicht). Aufm PC hab ich auch den 6.04er aber hab da noch nie mit den Einstellungen gespielt.. muss ich mal nachholen. Ich hab auf meinem TiBook Virtual PC installiert was mir konfortabel die möglichkeit gibt meine seite auf (praktisch)ALLEN Betriebsystemen und Browsern anzuguggen :-)
Zudem hab ich unter MacOS X mySQL und PHP 4 drauf so dass ich auch offline voll in den genuss des Testens/Erstellens kommen kann.
Naja, wenn ich jetzt mal eben Frames ausschalte, sieht Deine Web-
site auch nicht mehr so toll aus (*g*), aber die habe ich eigent-
lich immer an, also keine Sorgen ;-)
Nee wie gesagt macht ja nix.. muss nur lesbar sein und nicht gut ausschauen.. dann erfüllts die richtlinien ;-)
Wie ich schon sagte, es spricht nix dagegen, dass Du bestimmte
Voraussetzungen an Deine Besucher stellst, aber wer die nicht er-
füllt, sollte höflich darauf hingewiesen werden. Noch besser ist
natürlich, Alternativen anzubieten oder auf den Einsatz dieser
Sachen zu verzichten, wo möglich+sinnvoll.
Jo Hab ich ja gemacht :-) das redirect ist mir entgangen aber ist mittlerweile auch drauf wie du sehen kannst...
Die beiden verlinkten Validator-Buttons finde ich btw Unfug, damit
wird nur der W3C-Server unnötig belastet und wenn die da stehen,
dann glaube ich es dem Website-Betreiber auch. Eine andere Frage
ist, welche Deiner Besucher aus diesen Buttons überhaupt irgend-
einen Nutzen ziehen.
Nah das ist ja nur zur info und ich hol die Picts ja ned vom W3C server... nur wenn da wer draufklickt dann wird der W3C server beansprucht und es würde mich wundern wenn jeder besucher auf jeder seite den W3C button klickt ^^
Viele Grüße,
Stefan
Also nochmals vielen Dank für die Inputs
Grüsse aus (der im moment zu heissen) Schweiz
Christoph
Hi
Ich bins nochmal.. Du gehst mit nem browser drauf der auto forward ned unterstützt... hab dafür jetzt nen ollen text eingebaut bei dem man sich "weiterklicken" kann.
Gruss Chris
Hallo,
gibt es eine Möglichkeit, serverseitig festzustellen (in Perl oder was auch immer), ob der Client JavaScript eingeschaltet hat oder nicht?
mit großen Einschränkungen.
Man muss halt eine Seite dazwischenschalten. Das sollte funktionieren:
--- seite1.php ---
doctype
<html>
<head>
<meta http-equiv="refresh" content="5; URL=seite2.php?javascript=0">
<script type="text/javascript">
location.replace ("seite2.php?javascript=1");
</script>
</head>
<body>
Falls sie nicht automatisch weitergeleitet werden, klicken sie bitte <a href="seite2.php?javascript=0">hier</a>.
</body>
</html>
-------------------
----- seite2.php -----
.... kopf ....
<?php
if ($_GET["javascript"] == 0) {
echo "sie haben JavaScript nicht aktiviert<br>";
} else {
echo "sie haben JavaScript aktiviert<br>"
}
?>
.... fuß ...
----------------------
Das geht natürlich auch mit Perl/etc.
Aber wie AndreasW schon gesagt hat: der User könnte es sich plötzlich anders überlegen, und dann steht man dumm da....
Grüße,
Christian
Ok, folx, Danke für eure Mühe, ich denke ich habe die Antworten, die ich brauche.
Gruß,
UlfL
Hallo Ulf,
gibt es eine Möglichkeit, serverseitig festzustellen (in Perl oder was auch immer), ob der Client JavaScript eingeschaltet hat oder nicht?
um Dir diese Frage kurz und knapp zu beantworten: Nein.
Wie auch immer Du es realisierst, Du mußt dazu auf jeden Fall Java-
Script einsetzen und zwar genau an der Stelle, wo Du wissen willst,
ob der Client Deines Besuchers JavaScript unterstützt.
Was Christoph und Christoph in diesem Thread vorgeschlagen haben,
enthält zwar PHP, aber wenn Du es Dir mal richtig anschaust, dann
wirst Du feststellen, dass die eigentliche Unterscheidung nach wie
vor über JavaScript läuft. Nach dem Schema kann ich Dir auch mit
Technologie XYZ feststellen, ob JavaScript eingeschaltet ist ;-)
Viele Grüße,
Stefan