document.write trotz deaktiviertem JS

MaW

Grünschnabel
Hi,

ich möchte auf meinen seiten prüfen ob js an ist, weil dies zwingen nötig ist. wenn ja sollen alle formularangaben per js geprüft werden, wenn nein per php.

nun wollte ich einen javascript-check machen der so aussieht:

Code:
<script>
var bJavaEnabled = navigator.javaEnabled();
</script>

<script>
if (bJavaEnabled)
{
document.write("<?php $fcjs = "javascript_form"; ?>");
document.write("<br>Javascript ist an - fein<br>");
}
else
{
document.write("<?php $fcjs = "php_form"; ?>");
document.write("<br>Javascript ist aus ;(<br>");
}
</script>

das geht auch soweit... zumindest was das reine html betrifft, aber auch wenn js aus ist wird die variable $fcjs dennoch gesetzt. ist das bei js normal, dass wenn es im browser deaktiviert ist es im hintergrund dennoch ausgeführt nur die reine ausgabe zum browser verweigert wird? ...anders kann ich es mir nicht erklären das die variable dennoch getzt wird.

cu maw
 
hier mal etwas umgewandelt um es zu verdeutlichen:

Code:
<script>
var bJavaEnabled = navigator.javaEnabled();

if (bJavaEnabled)
{
document.write("<?php $fcjs = "javascript_form"; ?>");
document.write("<br>Javascript ist an - fein<br>");
}
</script>
<?php 
if (empty($fcjs)) {
$fcjs = "php_form";	
	
}
echo $fcjs."<br>";
?>

trotz das js aus ist wird $fcjs gesetzt, der text selber kommt nicht - ist das normal?
 
Code:
navigator.javaEnabled()
....gibt Auskunft darüber, ob JAVA aktiviert ist, das hat nix mit Javascript zu tun.

Wenn du Text ausgeben willst, falls Javascript deaktiviert ist, kannst du den <noscript>-Tag benutzen.:
Code:
<script type="text/javascript">
<!--
document.write('JS ist an');
//-->
</script>
<noscript>JS ist aus</noscript>

Ansonsten versteh ich nicht so ganz, was du vorhast.. auf jeden Fall kannst du auf diese Weise keine PHP-Variablen setzen/verarbeiten, da in dem Moment, wo das Javascript anfängt zu arbeiten, das PHP-Skript bereits beendet ist.... und auch sonst PHP und Javascript nicht miteinander kommunizieren können.
 
Zuletzt bearbeitet:
probier das script doch mal aus... js setzt die php variable... und das darf es aber nicht wenn es deaktiviert ist... eine einfache ausgabe wie den satz das es an oder aus ist brauch ich nicht... das war nur zur verdeutlichung... d.h. der noscript teil bringt mir nichts


ich tippe ja hier keinen ungetesteten code ab...
 
JS setzt da garnix....
Code:
<?php $fcjs = "javascript_form"; ?>
...damit wird die Variable gesetzt, und zwar in und von PHP.

Du könntest genausogut schreiben:
Code:
if (meinBierIstAlle)
{
document.write("<?php $fcjs = "neues Bier bestellen"; ?>");
}
... auch dann wäre deine Variable gesetzt.(mit einem anderen Wert :-))

Der Code drumherum um den PHP code wird von PHP überhaupt nicht geparst.
Lösche einfach mal alles, was nicht innerhalb von PHP-Tags steht... dann wirst du sehen, warum die Variable immer gesetzt ist;)
 

Neue Beiträge

Zurück