Hallo allemaal. Ik wil in verband met het aanroepen van een javascript in een script daarvoor een javascript checker inbouwen.

Nu weet ik dat als ik er een javascript in zet met window.location(link) blabla dat hij alleen doorstuurt als javascript aanstaat, maar ik wil een mooie foutafhandeling.

Google al gebruikt, helaas niks gevonden, weet iemand hier de oplossing?

Het is dus soort van zo:


<?php

if(!javascript) // staat uit
    {
         echo 'jammer maar helaas doei!';
    

}else{

voer rest van pagina uit 

}

?>


zoiets. javascriptcheck moet in een functie komen dus roep de functie aan bij openen van de pagina.

Alvast bedankt!
Hoe wil je met javascript checken of javascript ingeschakeld is? Da's dus onmogelijk. Bovendien in PHP moet je het al helemaal niet zoeken, PHP is server-side en dat staat compleet los van client-side.

Je kan gebruik maken van de <noscript> tag in HTML, of je kan iets doen in de trand van:

<div id="appel" style="display: block">Jammer maar helaas, doei!</div>

En dan met javascript de display op none zetten.
En deze code?


<?php
if (empty($_SESSION['js'])){
  $_SESSION['js']= array_key_exists('js', $_POST) ? $_POST['js'] : '';
  ?>
    <form name="tester" action="<?php echo $PHP_SELF ?>" method="post">
    <input type="hidden" name="js" value="on">
    </form>
    <script type="text/javascript"><!--
      document.tester.submit()
    //-->
    </script>
  <?php
}

if ($_SESSION['js']== "on"){
  print"<h3>Javascript is ON</h3><br>";
  print"Php code can be added here!<br>";
}else{
  print"<h3>Javascript is OFF</h3><br>";
  print"Php code can be added here!<br><br><br>";
}
?>


bron: http://snippets.bluejon.co.uk/checkForJsEnabledV2.php
Justin: je hebt een stukje code, en gaat nu aan ons vragen of het werkt? heb je dit al getest???
Nee ik wil alleen de logica van dit script doorzien... Dus als je het uit kan leggen?


EDIT: Heb 'm door en het werkt! Javascript kan dus wel met PHP :)!
Je kunt toch ook gewoon met noscript werken.

Gewoon iets als:


<noscript>U heeft JavaScript niet aan staan mogelijk werkt de pagina niet optimaal. Om javaScript aan te zetten .... blblabaaaa</noscript>


Op het moment dat er iemand komt die geen javascript heeft, of geen javascript aan heeft staan dan krijgt hij de noscript melding te zien, vervolgens kun je die weer met CSS opmaken.
even situatie uitleggend:

Ik maak een login script waarvoor ik JS gebruikt om waarden te hashen. Maar zodra javascript niet aanstaat moet het login script geblockt worden..
Ik had het eig zo opgelost, als javascript niet aanstaat geef je een exit(); zodat het script niet verder gaat, is er wel javascript, mag ie gewoon door... Met <noscript> kan dit niet...
Je kunt toch in javascript de pagina doorsturen. Als je dus javascript hebt uit staan dan kom je niet op de doorstuurpagina en anders wel.
Justin schreef op 17.12.2008 15:30
En deze code?


<?php
if (empty($_SESSION['js'])){
  $_SESSION['js']= array_key_exists('js', $_POST) ? $_POST['js'] : '';
  ?>
    <form name="tester" action="<?php echo $PHP_SELF ?>" method="post">
    <input type="hidden" name="js" value="on">
    </form>
    <script type="text/javascript"><!--
      document.tester.submit()
    //-->
    </script>
  <?php
}

if ($_SESSION['js']== "on"){
  print"<h3>Javascript is ON</h3><br>";
  print"Php code can be added here!<br>";
}else{
  print"<h3>Javascript is OFF</h3><br>";
  print"Php code can be added here!<br><br><br>";
}
?>


bron: http://snippets.bluejon.co.uk/checkForJsEnabledV2.php


Gaat ook niet werken,
Dan kan je gwoon eerst js aanzetten, wordt de sessie gemaakt.
En dan zet je vervolgens je js weer uit, en staat er alsnog Javascript is ON.

yorick17 schreef op 17.12.2008 17:02
Je kunt toch in javascript de pagina doorsturen. Als je dus javascript hebt uit staan dan kom je niet op de doorstuurpagina en anders wel.


Gaat ook niet werken, je kan ook gwoon meteen naar index2.php o.i.d gaan.
Maar ik wil dit op 1 pagina houden en niet met 2x een index gaan werken voor alleen de javascriptdetectie...

EDIT: @Brie: was ik inderdaad helaas achter, maar dat is in princiepe toch altijd zo?
iets van:

<script language="javascript">
function test()
{
  document.getElementById('test').style.display = 'block';
}
setTimeout("test()", 1);
</script>

<div id="test" style="display: none">Hier je formulier</div>


Niet getest, maar miss dat het werkt?

edit:
Net getest, maar werkt niet :(

Reageren