Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment détecter si l'utilisateur accepte le javascript ?

Si c'est faisable...

Sujet résolu
    27 novembre 2005 à 15:59:30

    Est-il possible de détecter si un utilisateur a désactivé le JS dans son navigateur et d'en profiter pour lui afficher un message ou le rediriger vers une page adaptée dans ce cas ?

    Je précise que je n'y connais rien en JS mais que j'utilise un script pour ma FAQ.
    Si le JS est désactivé, la faq devient illisible... Ce qui m'ennuie un peu.

    Je pense mettre un lien vers une 2nde FAQ pour ceux qui auraient des soucis, mais je trouverai plus élégant de les repérer / rediriger automatiquement...
    • Partager sur Facebook
    • Partager sur Twitter
      27 novembre 2005 à 16:04:02

      Si ta FAQ ne s'affiche pas correctement sans le JavaScript activé, tu devrais nous faire un lien vers cette FAQ de sorte à régler ce problème. Mais créer une deuxième page pour ceux qui n'ont pas le JS activé, c'est une perte de temps. Mieux vaut plutôt supprimer le JavaScript dans la première (ou du moins le "convertir" en une page où le JS n'est pas nécessaire).
      • Partager sur Facebook
      • Partager sur Twitter
        27 novembre 2005 à 16:10:05

        Je ne peux pas faire un lien... C'est une page qui demande d'être identifié.

        Par contre je peux expliquer :

        C'est une FAQ où on a la liste des questions.

        Quand on clique sur une question, elle se "déplie" et affiche la réponse.
        Quand on clique de nouveau, on referme la réponse.

        Ca rend bien, c'est pratique, super.

        Mais si on n'a pas le JS on voit les questions et il ne se passe rien quand on clique dessus.

        Je précise que je ne veux pas d'une FAQ avec des ancres, etc...

        Ce système est ce que je voulais, précisément.

        Mais pour ceux qui n'ont pas le JS, je pense créer une FAQ2 avec un système d'ancres...
        Moins beau, moins pratique, mais accessible aumoins (j'en ai pour 2mn à le faire en plus).
        • Partager sur Facebook
        • Partager sur Twitter
          27 novembre 2005 à 16:22:46

          Au lieux que tes reponses soient cachées au départ, affiche les et utilise le javascript pour les cacher. Comme ça ceux qui ont le javascript activer peuvent ouvrir les reponses, et les autres voient directement les reponses.
          • Partager sur Facebook
          • Partager sur Twitter
            27 novembre 2005 à 16:24:00

            fais un lien comme ca :

            <a href="faq.php" onclick="document.location="faq.php?js=1"; return false;">FAQ</a>

            Si le type a le js activé, sur faq.php tu aura $_GET['js'] qui vaudra 1.
            Si le js est désactivé, tu aura $_GET['js'] qui ne sera pas défini

            Après t'adaptes ton faq.php et c'est bon
            • Partager sur Facebook
            • Partager sur Twitter
              27 novembre 2005 à 16:32:29

              Alors je comprend le principe de cacher les réponses avec le JS, ce qui fait qu'elles seront tjs visibles pour ceux qui l'ont désactivé...

              Mais je n'y connais RIEN en JS.

              Pourriez-vous me dire quoi modifier d'après mon code actuel :

              <script type="text/javascript" src="hide.js"></script>


              <p id="q_liens">
              <span class="grand">Q/</span> <a onclick="javascript: show('liens'); hide('q_liens');" title="Afficher la réponse à : 'Y a-t-il aussi de l'aide sur les liens présents sur le site ?'">Y a-t-il aussi de l'aide sur les liens présents sur le site ?</a> <br />
              </p>
              <p id="liens" style="display: none;">
              <span class="grand">Q/</span> <a onclick="javascript: hide('
              liens'); show('q_liens');" title="Masquer la réponse à : 'Y a-t-il aussi de l'aide sur les liens présents sur le site ?'">Y a-t-il aussi de l'aide sur les liens présents sur le site ?</a> <br />
              <span class="
              grand">R/</span> Oui. <br />
              Quand tu passes ta souris sur un lien, une infobulle s'affiche pour te dire où va ce lien et/ou à quoi il sert.
              </p>
               
              • Partager sur Facebook
              • Partager sur Twitter
                27 novembre 2005 à 16:39:44

                Dans ce cas, le mieux est de créer un script qui sera compatible avec ceux qui n'ont pas le JavaScript. C'est simple. D'ailleurs je te le fais :

                Tout d'abord, il va falloir écrire le code XHTML "par défaut", c'est-à-dire le code XHTML qui sera lu par ceux qui n'ont pas le JavaScript.
                Le JavaScript se chargera en fait de "replier" la réponse aux questions. Bref, on va dire que ce code ira bien :
                <div class="question">
                        <h4>La question</h4>
                        <p>La réponse à la question.</p>
                </div>
                <div class="question">
                        <h4>La question</h4>
                        <p>La réponse à la question.</p>
                </div>
                <div class="question">
                        <h4>La question</h4>
                        <p>La réponse à la question.</p>
                </div>
                <div class="question">
                        <h4>La question</h4>
                        <p>La réponse à la question.</p>
                </div>


                <h4> est la question, et où <p>, la réponse. Ces deux éléments seront mis dans un <div> dont la classe (attribut class) sera "question".

                Maintenant, tu peux tester le code, c'est comme ça que ta FAQ sera vue par les gens ne possèdant pas le JavaScript.

                Une fois que c'est fait, on va pouvoir créer le JavaScript. Pour ce faire, il te faut mettre entre ta balise <head> et </head> le code suivant :
                <script type="text/javascript" src="faq.js"></script>


                Ensuite, tu crées un fichier faq.js dans lequel tu copieras le code suivant :
                var div;
                var p;
                var paragraphes;
                var h4;
                window.onload = function()
                {
                        div = document.getElementsByTagName('div');
                        for(var i=0;i<div.length;i++)
                        {
                                if (div[i].className == 'question')
                                {
                                        h4 = div[i].getElementsByTagName('h4')[0];
                                        p = div[i].getElementsByTagName('p');
                                        for(var x=0;x<p.length;x++)
                                        {
                                                p[x].style.display = 'none';
                                        }
                                        h4.onclick = reponse;
                                        h4.divCorrespondant = i;
                                }
                        }
                }
                function reponse()
                {
                        paragraphes = div[this.divCorrespondant].getElementsByTagName('p');
                        for(y=0;y<paragraphes.length;y++)
                        {
                                paragraphes[y].style.display = (paragraphes[y].style.display == 'none') ? 'block' : 'none';
                        }
                }


                Puis ensuite, juste pour que ça fasse plus joli, tu peux mettre ce CSS :
                .question h4:before
                {
                        content: url(http://pdbbeta.rcsb.org/pdb/skins/default/images/tree/question.gif);
                }
                .question h4
                {
                        color: blue;
                        cursor: pointer;
                }


                Voilà :)

                PS : Oui j'ai été un peu long à écrire ma réponse...
                • Partager sur Facebook
                • Partager sur Twitter
                  27 novembre 2005 à 18:38:52

                  Merci beaucoup pour tout ça, mais je ne sais pas trop si je vais vraiment l'utiliser.

                  Mon soucis est que je ne comprend pas tout et que je n'aime pas trop utiliser des trucs que je comprend pas.

                  Alors bien entendu cette attitude a un énorme inconvénient : j'ai déjà été obligé d'apprendre le html, puis le php, puis le xhtml et le css pour pouvoir faire des sites où je comprend qqc...

                  Va bientôt falloir que je me mette au JavaScript j'ai l'impression... Mais comme le flash m'attire aussi... o_O

                  En tout cas je garde ça sous le coude et je réfléchis à le tester rapidement.

                  Merci beaucoup de ton aide !

                  Pour répondre à ta signature : sur un clavier français (AZERTY) le ç se fait tout simplement en appuyant sur la touche [9] au-dessus des lettres... C'est donc facile et sa ça ne prend pas longtemps !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 décembre 2005 à 8:56:01

                    A mettre entre les balises <head> </head>
                    <NOSCRIPT>
                    <meta http-equiv="refresh" content="0;URL=http://www.votre-domaine.com/nojavascriptfaq.html">
                    </NOSCRIPT>


                    Source: Toulouse renaissance
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Erreur PDO - Installation Wamp - Docs PHP et MYSQL.

                    Comment détecter si l'utilisateur accepte le javascript ?

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown