IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Est-il possible de forcer <noscript> ?


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut Est-il possible de forcer <noscript> ?
    Salut!

    Je me demande si il existe un moyen pour désactiver dynamiquement Javascript... Le problème se pose parceque je sais que Javascript peut être désactivé et je prépare donc une alternative via les balises <noscript></noscript>. Avec certains navigateurs (NS4.78 par exemple), j'aimerais que cette alternative soit utilisée d'office.

    Pour résumé, je souhaite que le code suivant m'affiche "JS est désactivé" avec NS4.78,
    mais je ne vois pas quoi mettre dans la fonction force_noscript() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script>
    function force_noscript(){
     
    }
    if (document.layers) { force_noscript(); }
    </script>
    <noscript>JS est désactivé<br></noscript>
    <script>JS est activé<br></script>

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je pense avoir solutionner le problème comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <span id="noscript">JS est désactivé<br></span> 
    <script>
      if(!document.layers){
        document.write('JS est activé<br>');
        document.getElementById('noscript').innerHTML='';
      }
    </script>
    Il faudra que je prenne en compte le fait que le code de "noscript" est tout de même éxécuté avant d'être supprimé par Javascript... Vos remarques & suggestions sont les bienvenues.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <span id="noscript">JS est désactivé<br></span>
    <script>
      if(!document.layers){
        document.getElementById('noscript').firstChild.data='JS est activé';
      }
    </script>
    et je ne pense pas que si js est activé la phrase initiale soit visible

    un autre variante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="yesscript" style="display:none;"> JS est activé<br></div>
    <div id="noscript" style="display:block;"> JS est desactivé<br></div>
     
    <script type="text/javascript">
      if(!document.layers){
        document.getElementById('yesscript').style.display='block';
        document.getElementById('noscript').style.display='none';
    	  }
    </script>

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Au départ, je voulais également utiliser "display:none", mais j'ai lu quelque part que cette propriété n'était pas vraiment sûre (je ne me souviens plus de la raison). Quoiqu'il en soit, à ton avis SpaceFrog, quelle est la meilleure solution des 2 propositions, et pourquoi ce choix ?
    Citation Envoyé par SpaceFrog
    et je ne pense pas que si js est activé la phrase initiale soit visible
    A mon avis, le code est éxécuté, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script type="text/javascript">
    <!--
    function Sleep(ms) {
    	del=new Date();
    	while(1) {
    		diff=new Date()-del;
    		if(diff>ms) break;
    	}
    }
    //-->
    </script>
     
    <span id="noscript">JS est désactivé<script>Sleep(5000);</script><br></span> 
    <script>
      if(!document.layers){
        document.write('JS est activé<br>');
        document.getElementById('noscript').innerHTML='';
      }
    </script>
    Merci beaucoups !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    non c'était juste une exploration de ce coté là ...

    person j'irais droit au but :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="noscript">javascript est desactivé</div>
    <script type="text/javascript">
          document.getElementById('noscript').firstChild.data='javascript est activé';
    </script>

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Réellement efficace, une autre solution est d'utiliser PHP et de générer uniquement le code HTML correspondant :
    http://www.developpez.net/forums/vie...017217#2017217

    A moins que l'éxécution du code se trouvant dans le "noscript" ne dérange pas si JS est actif...

    Merci pour ta participation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/04/2008, 16h07
  2. Est-il possible de forcer l'activation du JAVASCRIPT sur un Navigateur
    Par L8O8L dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/07/2007, 13h39
  3. Réponses: 3
    Dernier message: 13/12/2006, 16h01
  4. [MS SQL] Est il possible de forcer la précision du type REAL
    Par TEXMEX dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/04/2006, 17h31
  5. est il possible de forcer l'ouverture d'un port
    Par voyageur dans le forum Développement
    Réponses: 86
    Dernier message: 23/10/2004, 20h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo