Remplacer le contenu de la page si Javascript désactivé

Fermé
popi - Modifié par popi le 5/11/2014 à 02:57
 popi - 21 nov. 2014 à 05:56
Bonjour,

Actuellement en train de créer un site : j'aimerai masquer tout le contenu d'une page si l'utilisateur n'a pas Javascript activé, et afficher un message à la place de ce contenu (sans rediriger l'utilisateur vers une autre page).

L'utilisateur va sur la page en ayant Javascript désactivé -> le contenu de la page est masqué directement -> un message simple indiquant par ex. "Veuillez activer Javascript pour accéder à cette page" s'affiche.


Avez-vous des éléments de réponse à me proposer, s'il vous plaît.

Je vous remercie.
A voir également:

3 réponses

dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
5 nov. 2014 à 06:30
Bonjour,

Pour afficher le message, c'est simple, il faut le placer entre les balises <noscript></noscript>.
En ce qui concerne le reste de la page, il faudrait probablement le placer dans un JavaScript, entre les balises <script> </script>, mais je ne sais pas si c'est possible pour une page complète..
1
Ce n'est qu'une idée.

Insérer tout le contenu de la page dans une div, qui est initialement masquée.
En dehors de cette div, le message d'avertissement.
Script pour afficher la div principale.


<body onload="afficher();">
<noscript style="color:red;text-align:center;padding-top:20%;">
L'utilisation de javascript est obligatoire sur cette page.<br>
<a href="http://www.enable-javascript.com/fr/" target="_blank">
instructions pour activer JavaScript dans votre navigateur Web
</a>
</noscript>
<div id="main" style="display:none;">
<!-- La page-->
Javascript est activé !
</div>
</body>
<script>
function afficher(){
document.getElementById("main").style.display="block";
}
</script>



Notez qu'il ne faudrait pas utiliser la balise noscript ! mais une div.
Si il y a un bug avec un utilisateur qui a javascript activé, il se retrouvera sur une page vide.
0
Merci beaucoup pour vos réponses
0