7
votes

Comment valider la balise Noscript + Meta Refresh dans XHTML?

Pour les visiteurs qui ne prennent pas en charge JavaScript, je les redirige vers une certaine page - "Js.html".

Pour cela, j'ai ce qui suit dans tous mes fichiers: P>

<noscript>
<meta http-equiv="Refresh" content="0;URL=js.html" />
</noscript>


0 commentaires

3 Réponses :


12
votes

Voici ce que vous pourriez faire:

Insérez le méta dans votre tête, mais avec un rafraîchissement de Soyons 2 secondes. Et très à côté de cet endroit une étiquette de script qui supprime ce méta rafraîchissement. Donc, tout utilisateur JS ne sera pas redirigé: p> xxx pré>

Le navigateur pourrait déjà avoir déjà "mentionné" l'actualisation du méta. Donc, vous pouvez simplement utiliser JavaScript pour écrire une commentaire HTML d'ouverture et de fermeture de la fermeture de la fermeture de la balise de script d'ouverture pour fermer l'étiquette de script du deuxième document.write) autour de celle-ci: p>

<script type="text/javascript">
    document.write("<!-- ");
</script>
<meta http-equiv="Refresh" content="2;URL=js.html" />
<script type="text/javascript">
    document.write(' --><script type="text/javascript">');
</script>


2 commentaires

@ Freekone- Souhaitez-vous me donner une main ici: Stackoverflow.com/Questtions/4532009/... ??


Le deuxième conseil, comme peut être brillant, ne fonctionne pas sur Firefox (non testé ailleurs). Avec JavaScript désactivé, la redirection n'est pas déclenchée, comme si les commentaires sont écrits dans la page. Utiliser la même chose dans une balise Noscript fonctionne.



2
votes

Comme vous l'avez découvert, ce problème ne peut pas être résolu dans HTML4. Dans HTML5, toutefois, Noscript est valide dans la tête, vous pouvez donc utiliser HTML5 à des fins de validation. (Le validateur HTML5 est bien meilleur que le HTML4 One de toute façon).

Un cavalier cependant: HTML5 a un problème exceptionnel ( numéro-117 ) qui appelle à une dépréciation de Noscript, il est donc possible que le dernier appel HTML5 atteigne le dernier appel, NOSSRING ne sera plus valide dans HTML5.


1 commentaires

Juste pour quiconque trébuché à travers cela, le 28 sept. 2010, le problème «déprécision de l'élément noscript» était fermé et que je présume donc que ce sera dans HTML5.



3
votes

J'ai essayé toutes les suggestions que je pouvais trouver pour cela, y compris les réponses à cette question, mais aucune n'a travaillé. La réponse de Kau-Boy à cette question n'a pas fonctionné pour moi (comme il commente la balise méta et la plupart des Second code Script Block, puis JS casse sur '); code> qu'il tente d'interpréter après la fermeture du commentaire, c'est-à-dire que cela se produit:

<script type="text/javascript">
    document.write('\x3Cscript type="text/javascript">/*'); 
</script>
<meta http-equiv="Refresh" content="0;URL=js.html" />
<script type="text/javascript">/**/</script>


0 commentaires