11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Bien que mes connaissances en web développement soient assez large, je n'ai jamais développé en javacript puisque j'en avais jamais réellement vu l'utilité dans mes applications.

Mais aujourd'hui, je souhaiterais l'utiliser pour rendre un menu un peu plus agréable et accessible aux utilisateurs ayant le javascript activé, naturellement, je ne souhaite pas que les autres utilisateurs soient défavorisés.

Connaissez-vous un moyen tout simple de vérifier si le javascript est activé, si oui, un menu s'affiche (menu1.php par exemple), autrement, un autre menu sans application javascript est affiché (menu2.php).


Merci d'avance,
& bonne journée Smiley smile
Bonjour,
côté serveur, il est impossible de déterminer si le javascript est activé chez le client. Faire un include conditionnel est donc impossible.
Par contre, il existe un moyen assez simple côté HTML. Place la version de ton menu non-javascript entre <noscript> et </noscript>
Si le client a activé le javascript, le contenu de cette balise est ignoré.
Dans le cas contraire, il est affiché.
Prends garde simplement que le menu ne soit pas présent en deux exemplaires si on désactive le js.

Exemple rapide d'utilisation :


<script type="text/javascript">
<!--
document.write("<p>Vous avez activé javascript, c'est parfait !</p>");
// -->
</script>
<noscript>
<p>Javascript est désactivé. Si vous avez la possibilité de l'activer, faites-le, vous y gagnerez en confort d'utilisation du site.</p>
</noscript>
Bonjour,

M'étant posé la même question j'ai tenté l'utilisation de "browscap" : ce n'est pas idéal dans la mesure ou le "browscap.ini" doit absolument être renseigné de façon très précise sur chaque type de navigateur possible.

Cette fonction ne donnera donc aucun résultat dès qu'une nouvelle version d'un navigateur sera mise en service, ou alors il faudra être très réactif pour compléter l'ini.

Une solution peut consister à tenter d'installer un cookie par javascript...

Mais php ne donne, à l'origine, aucun accès à la détection de javascript.
Il suffit de mettre systématiquement le menu2 et de faire en sorte que ton script remplace le menu2 par le menu1 par javascript.

Ceux qui ont javascript verrons le menu1, les autres le menu2.
Moi j'utilise en partie la technique du cookie posé par js.
Pas de js = pas de cookie, c'est aussi simple que ça.

Sinon le browscap ne sert à rien car il est facile de désactiver js sur ff par exemple. et le browscap n'en sura rien.
QuentinC a écrit :
Moi j'utilise en partie la technique du cookie posé par js.
Pas de js = pas de cookie, c'est aussi simple que ça


Ce n'est pas la solution miracle: un navigateur peut très bien avoir JS activé, mais refuser systématiquement les cookies...

a écrit :

Sinon le browscap ne sert à rien car il est facile de désactiver js sur ff par exemple. et le browscap n'en sura rien.

Exact.

J'aurais tendance à privilégier la solution suggérée par mauriz... initialiser avec menu1, puis faire en sorte que ton js remplace menu1 par menu2.
Merci bien pour vos réponses.
Ne connaissant rien du tout au javascript, je me permet de demander si vous n'auriez un lien ou un bout de code permettant d'intialiser le menu1, et de le remplacer par menu2 si le javascript est activé.

Merci bien pour votre aide Smiley smile