Pourquoi Google Chrome ne redirige
Une application que je travaille avec un PL/SQL package qui crée une page et utilise une fonction pour créer des MÉTA-tags.
Il crée une page web avec une balise META exactement comme ceci :
<META HTTP-EQUIV="Refresh" NAME="Refresh" CONTENT="1; URL=PaymentSubmit.html">
Le problème, c'est que Chrome n'aime pas le NOM="Refresh" de l'attribut. Il ne fait pas de redirection de la page, même si elle n'rediriger correctement dans IE et Firefox
Si je supprime le NOM de l'attribut, de sorte qu'il ressemble à ce qu'il fonctionne dans tous les navigateurs :
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=PaymentSubmit.html">
Ce qui se passe ici? Je ne peux pas trouver un standard du W3C pour la MÉTA redirection, donc est-ce que chaque navigateur de faire ses propres règles ? Je ne suis pas sûr si elle a jamais travaillé dans Chrome, mais depuis je n'ai jamais entendu les rapports de bug je suppose qu'il l'habitude de travailler dans Chrome.
Quelqu'un a un problème similaire ?
Grâce
source d'informationauteur jeph perro | 2014-03-21
Vous devez vous connecter pour publier un commentaire.
Si vous cochez le w3c wiki vous pouvez trouver la citation suivante:
Dire elle ne l'est pas valide html que les deux -
name
ethttp-equiv
attributs sont définis.Lire cette W3C HTML et XHTML Techniques de test sur l'actualisation des métafichiers:
La behavouir les autres navigateurs n'est pas mauvais, mais chrome est plus stricte.
Plus de détails sur le bon behavouir - et de la validité de la référence sont disponibles à l' http://www.w3.org/TR/html5/document-metadata.html#attr-meta-http-equiv-refresh
Aussi loin que la prise en charge du navigateur:
Le soutien pour
<meta>
d'actualisation est là, même dans IE6La syntaxe à utiliser est:
Place à l'intérieur de
<head>
pour actualiser la page après 5 secondes:Rediriger vers http://example.com/ après 5 secondes:
Rediriger vers http://example.com/ immédiatement:
Si vous prévoyez de prendre en charge le javascript disablers (Qui je ne pense pas que vous devriez faire 🙂
Ce faire:
<noscript><meta http-equiv="refresh" content="0; url=url here"></noscript>
Ce n'est pas une partie de HTTP standard.
Cependant, il existe des alternatives:
Pour l'actualisation de la page au bout de 5 secondes, ne le ci-dessous:
Si vous souhaitez rediriger après 5 secondes, puis de faire ci-dessous:
Si vous souhaitez rediriger immédiatement:
Mais il n'y a pas d'alternative à javascript disablers (youpi!!)
Conclusion:
Donc, ma suggestion serait d'utiliser mon javascript alternatives, parce qu'ils sont pas va être remplacé.
Mais
<meta>
balise de rafraîchissement peut être interrompu dans les années à venir.Plus de lecture : http://en.wikipedia.org/wiki/Meta_refresh
Pour la
<META
balises, Microsoft a publié des lignes directrices spécifiques:Plus précisément, pour la
<meta http-equiv="refresh">
élément, Microsoft indique ce qui suit:Personnellement, au lieu d'un
<meta
actualisation de la balise, je vous recommande d'utiliser un Redirection 301. En PHP que vous pouvez faire, par exemple, les suivantes:Cette méthode est meilleure que l'
<meta
rafraîchir parce que généralement une redirection 301 comprend l'adresse à laquelle la ressource a été déplacé. Les navigateurs Web qui suivent généralement des redirections 301 vers le nouvel emplacement automatiquement, sans action de l'utilisateur.Selon quelques définitions de
301 Redirect
il serait même conserver les anciennes positions:Tout cela est en ligne avec le fait que beaucoup de sites ombragés utilisation
<meta
actualiser pour ouvrir des sites web indésirables (spam/annonces...). Donc j'en conclurai que la balise meta refresh doit pas être utilisé.Pour les autres balises meta, veuillez lire ce qui suit: 18 balises meta de chaque page web doit avoir.
Garder à l'esprit que toutes les balises meta sont d'une importance cruciale; par exemple, Google dit qu'il ne pas utiliser la balise meta keywords web classement.
Mais rappelez-vous: c'est Mieux d'en avoir, et pas besoin que de besoin, et de ne pas avoir.
Il suffit de ne pas utiliser le
<META refresh
😉