Page 1 sur 1

Test Refus javascript

Posté : 29 mai 2006, 14:49
par fabio86
Comment fait on pour tester en php si le client refuse le javascript??

Merci d'avance

Posté : 29 mai 2006, 15:12
par Hubert Roksor
C'est impossible. HTML possède la balise <noscript> mais c'est tout. Ce que tu peux faire, c'est utiliser du javascript pour créer un cookie qui dirait "javascript=1". Si ce cookie n'est pas présent tu peux penser que l'utilisateur refuse le Javascript...

Posté : 29 mai 2006, 15:43
par zeus
L'astuce que j'utilise souvent :
Dans la page de connexion, je place ce script

Code : Tout sélectionner

<script type="txt/javascript"></script> <noscript> location.href="page_erreur_javascript.html"; </noscript>
Donc si le visiteur dipose de JS activé, il aura la page de connexion, sinon il sera redirigé vers une page lui indiquant qu'il doit activer JS ;)

Posté : 29 mai 2006, 15:59
par Hubert Roksor
Err.. "location.href" fonctionne dans <noscript> ? c'est assez illogique, mais si ça marche pourquoi pas. Dans le même genre on pourrait imaginer quelque chose comme ça

Code : Tout sélectionner

<form action="page_erreur.html" onSubmit="this.action='page_ok.php'">

Posté : 29 mai 2006, 16:07
par zeus
Excuse moi Hubert, j'ai pas réflechi

c'est pas location.href, c'est une balise meta de redirection

Code : Tout sélectionner

<script type="txt/javascript"></script> <noscript> <meta http-equiv="Refresh" content="0; URL=page_erreur_javascript.html"> </noscript>

Posté : 29 mai 2006, 16:10
par Hubert Roksor
Ah ouais tiens, c'est vrai que comme ça c'est pas mal :) Ça permet de déterminer l'état du javascript à la première page et de façon "active" sans avoir besoin d'une action de l'utilisateur. Je la replacerai, merci du tuyau ;)

Posté : 29 mai 2006, 16:19
par zeus
Mais de rien ;)

J'espère que ça conviendra également à fabio

Posté : 29 mai 2006, 16:37
par albat
<script type="txt/javascript">
//...
</script>
<noscript>
  <meta http-equiv="Refresh" content="0; URL=page_erreur_javascript.html"> 
</noscript>
Grrr...
J'hésitais à proposer cette méthode que j'utilise également,
car j'étais assez surpris par le location.href dans un <noscript>.
Ma perplexité a inhibé ma contribution. :?

Une petite précision tout de même :
les puristes n'apprécieront guère cette astuce
car le <noscript> se place généralement dans le <body> de la page
tandis que les balises <meta> doivent être placés dans le <head>.

Mais bon, tant que ça marche... ;)

Posté : 29 mai 2006, 17:03
par zeus
C'est comme le CSS, les puristes seront contre les "astuces" permettant l'interpretation IE et autres.

Mais entre les remarques des puristes et une page qui fonctionne ... j'ai choisi ;)