|
|
|
|
Détecter javascript activé ou pas (en php ?)
Dernière réponse le 1 sep 2006 à 02:00:42 Ssylvainsab, le 29 aoû 2006 à 23:34:22Bonjour.
Sur mon site j'ai un script JavaScript inséré dans chaque page qui affiche un menu.
Comme ca ne fonctionne pas avec JS désactivé, j'aimerais mettre un menu en PHP avec
<?php iclude ('menu.html'); ?>
Le problème est que le code html contenu dans le fichier menu.html est chargé a chaque fois (donc affichage des pages moins rapides), alors qu'en JS on charge une fois le fichier et c'est bon.
Je voudrais donc savoir si il y a un moyen de détecter si Javascript est activé ou pas, de n'importe quelle facon (éventuellement en PHP).
Ensuite si c'est activé je mets le Javascript et si il est désactivé je mets le php include.
Ah oui, et les balises <noscript></noscript> ne me serviraient pas (a moins que l'on puisse bidouiller avec des commentaires ou autres le contenu des balises) car leur contenu est quand même chargé.
Merci pour votre aide. Sylvain
Une idée, mais c'est seulement une idée.
|
Salut.
<noscript>Vous avez désactivé javascript. Si vous voulez quand même voir le menu, cliquez ici. Si vous ne voulez pas, cliquez ici. Si vous voulez voir le menu en Javascript (chargement plus rapide), réactivez JavaScript</noscript> Si le visiteur clique sur le premier "ici" (pour voir le menu avec un include php), je crée une variable de session : $_SESSION['menu'] = 'phpinclude'; Si le visiteur clique sur le deuxième "ici" (pour ne pas voir le menu), je crée la même variable mais avec une valeur différente : $_SESSION['menu'] = 'pasdemenu'; Mais ensuite je ne sais pas comment faire pour créer la variable de session quand le visiteur clique sur le lien ( ca ne serait pas avec $GET ? mais je suis pas sur.) En fait, le code html plus haut était affiché ou pas en fonction de ce code php
<?php
session_start();
if ( $_SESSION['menu'] = 'phpinclude')
{
include ('menu.php') //Donc la page php qui contient le code html du menu
}
elseif ($_SESSION['menu'] = 'pasdemenu')
{
//Ah bein, la, il ne faut rien faire en fait. Donc je mets des accolades vides ?
}
else //et la c'est si le visiteur a JS activé, ou que c'est la première page du site qu'il visite.
{
include ('menujs.php')/*je met la page qui contient le code html du menu en javascript (c'est a dire les balises <script...>)
et les balises noscript au cas ou JS est désactivé*/
}
?>
Voila, je pense que mon code ressemblerait a ca. Mais il y a encore une chose que je ne sais pas faire, c'est comment créer la variable de session quand le visiteur clique sur un lien. Alors, je fais comment ? Et mon code a l'air bon ? Merci pour votre aide. Sylvain |
Bonjour.
|
Maintenant c'est bon, mon script marche bien.
|

