De façon valable pour ajouter noscript en tête pour l'emballage de redirection
Je pensais donc un moyen simple de traiter avec le javascript soit désactivé par le navigateur serait le suivant:
<head>
<title>JavaScript Test</title>
<noscript>
<meta http-equiv="Refresh"
content="1;url=nojs.html" />
</noscript>
</head>
Et avoir la nojs.html
avoir quelque chose comme:
<p>Return to <a href="jstest.html">test</a> after enabling javascrpt.</p>
À l'écrasement de la page.
Ce n'est pas ma méthode préférée, mais c'est agréable et simple jusqu'à ce que quelque chose de plus gracieux peut être travaillé pour les utilisateurs sans javascript.
Cependant, il n'est pas valable pour mettre un <noscript>
élément dans le head
section. Les tests préliminaires ont travaillé de toute façon, bien sûr, mais je suis superstitieux quand il s'agit de mon code est valide, plus j'avais de la haine pour ce à fait échouer un test de terrain.
Donc, il y a un moyen valable de le faire? Peut-être enveloppant les noscript
dans un autre élément, comme une balise d'objet? Ou de certains plus simplement encore, je ne pense pas à?
- HTML5 permet l'utilisation de
<noscript>
dans lehead
section.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de savoir pourquoi vous avez besoin de rediriger vers une autre page au lieu de simplement afficher un message. J'utilise JS et un peu de CSS pour gérer ces situations et pour moi. Quelque chose comme ceci:
Puis dans
layout.css
:En le faisant de cette façon, la classe est appliquée à la
html
élément avant la page est affichée afin de ne pas obtenir un scintillement comme la non-JS contenu est échangé pour la JS contenu.<div id="noscript">
et pas<noscript>
? Vous pouvez prendre que le troisième ligne de votre feuille de style CSS.<noscript>
des balises, donc dans cet exemple, il serait une alternative idéale, mais dans de nombreux cas, il ne serait pas.Doug solution est assez bon, mais il a quelques inconvénients:
.js #wrapper { display: block }
").Plus simple, plus valide et une solution flexible en utilisant la même approche pourrait être:
Avec cela, il est valide html (aucun attribut de classe sur l'élément html). Il est plus simple (moins de CSS). Il est flexible. Il suffit d'ajouter le "jsOnly" classe à n'importe quel élément que vous souhaitez afficher uniquement quand JS est activé.
La
<noscript>
étiquette ne peut pas être dans la<head>
, il doit être dans le<body>
La pratique courante est de montrer un message à la place de la redirection, comme il n'y a aucun moyen de rediriger uniquement si javascript est désactivé.
Vous pourriez le faire dans l'autre sens, la première page nojs.html et sur cette page qui utilise javascript pour rediriger vers le contenu principal.
Si vous voulez vraiment un moyen valable de le faire, rendre votre page principale la
nojs.htm
page et l'utiliser JS pour cacher tout le contenu avant qu'il soit présenté à l'utilisateur et immédiatement rediriger vers la vraie page principale à l'aide de javascript.J'aime Doug solution. Toutefois, si vous avez besoin de rediriger, je voudrais rappeler que bien qu'il y est une spécification et un standard, le monde des navigateurs web est un sale, monde imparfait. Si oui ou non quelque chose est autorisé par la spécification n'est pas aussi important que de savoir si oui ou non cela fonctionne dans l'ensemble des navigateurs vous vous souciez.
Il suffit de regarder le code source de tout site majeur... la Plupart d'entre eux ne validez pas je serais prêt à parier 🙂
Ce sujet:
Et:
position: fixed;
au lieu deposition: absolute;
.