PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Javascript Test



Romanday
01-09-2005, 07:55
Hat jemand eine Idee, wie ich mit PHP überprüfen kann, ob
Javascript aktiviert ist?

michael.sprick
01-09-2005, 08:51
PHP kann nicht testen, ob Javascript auf dem Client aktiviert ist... PHP wird ja serverseitig ausgeführt, kann also auf dem Client garnicht arbeiten oder irgendetwas unterscheiden....

Wenn Du ein PHP Skript benachrichtigen willst, ob der jeweilige Browser Javascript aktiviert hat, kannst Du das z.B. über eine Brückenseite machen. Dies zu realisieren gibt es viele Möglichkeiten - eine davon:




<html>
<head>
<meta http-equiv="refresh" content="2; http://server.de/test.php?js=no">
<script language="Javascript" type="text/javascript">
function browsertest()
{
location.href='http://server.de/test.php?js=yes';
}
</script>
</head>
<body onload="Javascript: browsertest();">
Bitte warten, Browser&uuml;berpr&uuml;fung l&auml;uft...
</body>
</html>



In dem Moment, in dem Seite geladen wird, würde zuerst das Javascript veruschen, die URI http://server.de/test.php?js=yes aufzurufen. Scheitert dies (weil deaktiviert), würde das meta Tag nach 2 Sekunden einen refresh durchführen und die URI: http://server.de/test.php?js=no aufrufen...

Pingu
01-09-2005, 09:09
Aus Gründen, die michael.sprick bereits angesprochen hat, geht es natürlich nicht.

Eine andere Möglichkeit als über einen Refresh wäre die Seite ganz normal aufzubauen und das JavaScript über den Server nachladen zu lassen.

<script language="javascript" src="http://www.example.com/javascript.js" />
Das zurückgelieferte JavaScript könnte dann den DOM des HTML nach belieben bearbeiten, falls gewünscht.

Damit gibt es keine Refresh und Sachen wie "Falls Ihr Browser keine Automatische Weiterleitungs unterstützt, klicken Sie bitte hier."

Pingu

Romanday
01-09-2005, 19:47
In dem Moment, in dem Seite geladen wird, würde zuerst das Javascript veruschen, die URI http://server.de/test.php?js=yes aufzurufen. Scheitert dies (weil deaktiviert), würde das meta Tag nach 2 Sekunden einen refresh durchführen und die URI: http://server.de/test.php?js=no aufrufen...

Weiterleitungen können z. B. im > IE5 ausgeschaltet werden.
Ich dachte erst vielleicht mit JS ein Cookie setzen, und PHP
versuchen das Cookie zu lesen. Aber das ist auch Murks, da
der Client auch Cookies deaktivieren kann.