Comment puis-je savoir si le Javascript a été désactivé dans le navigateur?

StackOverflow https://stackoverflow.com/questions/45097

  •  09-06-2019
  •  | 
  •  

Question

Je suppose que vous ne pouvez pas utiliser un extrait de code JavaScript pour valider si le navigateur de l'utilisateur a désactivé JavaScript.Si ce que je peux utiliser à la place?Quelqu'un peut-il offrir un exemple de code?

Je suis à la recherche pour l'envelopper d'un if/then instruction autour d'elle.

J'ai souvent code CFML, si cela aide.

Était-ce utile?

La solution 4

Nous parlons de quelque chose comme ceci:

JavaScript:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

Autres conseils

c'est un total de hack mais vous pouvez utiliser un iframe à l'intérieur de la balise noscript pour déclencher un HTTP GET sur une url pour indiquer au serveur que l'utilisateur n'a pas activé javascript.

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

Utiliser les <noscript> balises HTML.

Pas sûr de ce que vous essayez de faire, mais si vous avez juste besoin d'informer l'utilisateur que le Javascript est requis, vous pouvez utiliser le '<noscript>' tag.Si vous avez besoin de savoir sur le serveur que vous pourriez faire de l'Ajax style demande au serveur à partir de javascript.Si vous obtenez la requête javascript fonctionne sinon ses pas.

Il demande à une vérification pour voir si le javascript est activé.Je ne peux que penser à faire exactement ce que l'OP dit - essayez d'utiliser un peu de Javascript, avec un intervalle d'envoyer un rappel si JS est activé - malheureusement, je ne pense pas que vous pouvez vérifier côté serveur si JS est activé, c'est pourquoi vous utilisez des balises plutôt que de rendre un contenu différent à partir du serveur.

Si vous utilisez JavaScript Discret ensuite, vous n'avez pas besoin de vérifier si l'utilisateur a activé JavaScript.

S'ils ont eu le JavaScript puis ils vont obtenir le plein effet, mais ils n'ont pas les utilisateurs seront toujours en mesure d'utiliser votre site.Et ainsi une amélioration de l'accessibilité que vous pourriez trouver cette approche améliore votre RÉFÉRENCEMENT.

<noscript>
    ...some non-js code
</noscript>

Oui, c'NoScript extrait de droite.

Vous pourriez avoir javascript exécuter une requête AJAX et vérifier pour voir si elle l'a fait.Ceux qui téléchargement de la page, et de ne pas exécuter la requête soit JS désactivé ou qu'ils sont des robots.

Vraiment tout ce que vous pouvez faire est de mettre de message dans les tags.Il me semble me rappeler d'essayer ce sur ASP.NET quelque part, mais vous pouvez vraiment dire seulement si le navigateur supporte Javascript, pas de savoir si ou non il est effectivement permis/permis.

Je ne sais pas beaucoup sur CFML, mais .NET a la capacité de détecter les capacités du navigateur.Il n'est pas, cependant, ont la capacité de détecter si le navigateur est capable de javascript, mais il a tourné off.Donc, vous êtes coincé là-bas aussi.

Outre le HTML balise noscript, il n'y a pas beaucoup que vous pouvez faire, autant que je sache, en plus d'écrire du code javascript progressivement (voir l'amélioration progressive), de sorte que vous n'avez pas besoin de vérifier pour Javascript:off.

Je ne connais pas le JS, mais serait-il possible de modifier les liens à l'intérieur de la page avec JS?Si quelqu'un va à la non-modifié le lien, ils n'utilisent pas de JS, mais si ils le font alors qu'ils sont à l'aide de JS.Est-ce vraiment raisonnable?

N'ont jamais travaillé sur la façon de le faire sans un aller-retour, donc, cela dépend de ce que votre but est.

Si qu'ils ont besoin de javascript pour continuer, alors j'ai (en .net) fait des choses comme la désactivation du bouton de connexion sur le côté serveur, puis activé côté client avec javascript, et utilisé une balise noscript pour afficher un message d'erreur.

Si il doit travailler de toute façon, vous pouvez utiliser d'amélioration progressive, et / ou utiliser js pour définir un champ caché et ensuite définir une variable de session, mais cela signifie que vous ne savez pas jusqu'à ce qu'ils arrivent à la deuxième demande.

vous pourriez écrire

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

ou écrire un cookie via js et ensuite le lire sur le serveur si vous voulez vérifier côté serveur pour js.

si vous êtes à la recherche d'un moyen de le vérifier côté serveur, vous pouvez l'envoyer à l'utilisateur un js qui met un cookie....si le cookie existe, sur une requête, alors vous pouvez savoir si le script a fonctionné ou pas!

Un moyen fiable pour ce faire est d'utiliser du javascript $.poste pour envoyer une note à votre serveur.(Toutes mes excuses si il y a des erreurs dans ce, radiés dessus de ma tête, sera mise à jour plus tard, quand je me déplace pour des tests).Devrait vous permettre de construire de sorte que vous pouvez même tirer à partir des données de session si elles sont à l'aide de javascript, ce qui vous permettra de vous servir de remplacement pour javascript, sans avoir à recourir .

Votre page de script:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

Et dans le ciblées .php...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top