PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Knackig-sexier Javascript Test ...



NPC Fighter
06.05.2006, 20:21
... Will nicht funktionieren. :A

Also, folgende Sache. Ich will testen, ob jemand JavaScript an hat, und die Ausgabe selbst formatieren können.
Einfache Überlegung: Mach dir nen eingebetteten JS Part, der lediglich per document.write ein Stück PHP Code ins Dokument schreibt, in dem wiederum der Wert einer Variable festgelegt wird.
Diese Variable wird in dem Stück außerhalb des Javascriptbereiches wiederum per PHP abgefragt. Entspricht sie der entsprechenden Festlegung von oben, wird ausgegeben, das Javascript aktiv ist, andernfalls, dass Javascript nicht aktiv ist.
So viel zu meiner Überlegung. Ergo hab ich mir mal schnell den folgenden Code zusammengekleistert:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>NPCs Javascript-Test :A</title>
</head>
<body>

<script type="text/javascript">
<!--
document.write("<?php $js_on = 1; ?>");
//->
</script>

<div align="center"><br /><br />
<?php
if($js_on == 1) {
echo "Dein Javascript Status ist aktiviert.";
}
else {
echo "Dein Javascript Status ist <strong>nicht</strong> oder nur teilweise aktiviert.";
}
?>
</div>

</body>
</html>

Soweit so gut. Test in Firefox mit aktivem Javascript: Jo, es wird angezeigt, dass Javascript aktiviert ist.
Das Problem: Wenn ich Javascript jetzt deaktivere, bekomm ich immer noch entgegengeschmettert, dass es aktiviert wäre.

Die 100 Millionen Dollar Frage: Warum?

Firefox scheint das auch zu interpretieren, obwohl ich JS ausschalte, denn: Wenn ich im Quelltext den Javascript Mist gänzlich weglasse, bekomme ich angezeigt, dass JS aus ist. - Wie eben geplant.

Wer das ganze nochmal in Aktion sehen will: http://www.npcfighter.de/zeugs/javascript.php


Blies helb. D:

Lukas
06.05.2006, 20:30
Ähm, das ist doch offensichtlich.
Der PHP-Code <?php $js_on = 1; ?> wird immer ausgeführt, unabhängig von JS. Der Server parst den Kram ja erstmal und schickt ihn dann an den Browser (und PHP interessiert es herzlich wenig, ob JS um den Befehl rumsteht, das achtet nur auf <?php ?>). In Javascript kannst du nunmal keine PHP-Befehle einbetten.

Milchbox
06.05.2006, 20:30
Ein Tip:

<?php $js_on = 1; ?>
Wird auch ausgeführt obwohl js nicht aktiv ist, weil php nicht javascript interpretiert sondern nur den php code ;)

Edit: So ein kack -.-

NPC Fighter
06.05.2006, 21:19
Hät ich wissen können.

D'oh.

DFYX
07.05.2006, 22:00
Wozu so umständlich? Es geht auch einfach mit folgendem Code:

<script type="text/javascript">
<!--
document.write("Aktiviert");
//->
</script>
<noscript>
Deaktiviert
</noscript>

dead_orc
07.05.2006, 22:40
Ich vermute eigentlich er will ne Browserweiche bauen, je nach dem, ob der Browser JS kann/aktiviert hat, oder nicht. Da nützt ihm die Methode mit <noscript> nur bedingt was (kann aber trotzdem hilfreich sein).