Savoir si JavaScript est activé en PHP
JavaScritpt
XHR
Session
AJAX
PHP Normalement, un site bien fait, c'est un site qui fonctionne bien partout. C'est à dire qu'un site doit fonctionner même si le client utilise Internet Explorer ou même si JavaScript est désactivé. Cependant, sur certains site, cette accessibilité n'est pas présente. Ainsi, il est souvent utile de savoir si le client a activé JavaScript pour faire en conséquence ensuite mais le faire de façon invisible ... C'est une autre histoire ...
Mais Dino est là ! Et il a trouvé la technique. Il faut tout d'abord savoir qu'il nous est impossible de savoir de façon invisible si le client a désactivé JavaScript. Cependant, il est possible de savoir si JavaScript est activé ! Nous allons donc commencer notre quête inutile. Tout d'abord, il s'agirait de vous expliquer ce qu'est cette technique.
C'est très simple, dans le cas ou le client a activé JavaScript, nous lançons une requête HTTP par l'AJAX (donc présence obligatoire de JavaScript) vers une fichier
javascript.php qui définit une variable SESSION de type booléenne que l'on mettra sur TRUE.
Remarque : Il existe plusieurs techniques AJAX pour entrer en contact avec un fichier PHP, cependant, pour les novices, je vous conseille vivement d'utiliser cette technique :
XHR.
Dans le cas où le client n'a pas activé JavaScript, la requête HTTP par l'AJAX est impossible ainsi, nous pourrons pas définir la variable SESSION à partir du fichier
javascript.php et nous savons donc que le client n'a pas activé JavaScript.
Si on suit cette logique, dès que vous serez fasse à une situation où le JavaScript est crucial au bon fonctionnement de votre page, vous ferez :
Code : PHP
<?php
if( isset( $_SESSION['javascript'] ) ) { //Votre code JavaScript
} else {
//Votre code de secours sans JavaScript
}
?>
Alors, j'ai vraiment la flemme de vous faire un fichier contenant la fonction JavaScript pour faire appelle au fichier
javascript.php et j'ai la flemme de vous faire aussi le contenue du fichier
javascript.php. C'est pas très compliqué et si vous avez besoin d'aide, je vous donne quelques liens.
Bref, passons ... Nous avons un problème. Cette technique de vérification (c'est à dire la fonction JavaScript) doit être présente sur la totalité de vos pages et doit ce faire appeler pendant le chargement de la page. Pour ce faire, il suffit juste de rajouter à la balise <body> un onload :
Code : HTML
<body onload="ma_fonction_javascript_de_vérification();"
Pourquoi vérifier toutes les pages ? Tout simplement parce que si votre client ne passe pas par l'index (ce qui est fort probable), la vérification n'aura pas lieu. Cependant on notera que cela pourra peut être ralentir le chargement de toutes nos pages. Il faut donc mettre en place un mini pseudo système de cache ! Comment faire ? Eh bien, la vérification que nous mettons en place est inutile dans le cas où la variable SESSION est défini. Donc il suffit de mettre dans la balise <body> ceci :
Code : PHP
<body
<?php if( !isset( $_SESSION['javascript'] ) ) { ?> onload="ma_fonction_javascript_de_vérification();"
<?php } ?>>
Et voilà, terminer ! Vous savez maintenant si votre client a JavaScript activé ou pas ... Cependant, je tiens à dire que cette technique est selon moi inutile car un bon site est un site qui s'adapte à toutes configurations. Donc si vous êtes fan de cette technique, il serait temps de vous remettre en cause et de vous demandez si votre site a réellement besoin de JavaScript.
Par dinosaure, le 25/11/2009 à 21h45
Poster un commentaire