web-dev-qa-db-fra.com

La méta-actualisation ne fonctionne pas?

J'ai une page utilisant quelque chose le long des lignes de 

<meta http-equiv="refresh" content="0;url=http://example.com/" />

mais pour certains utilisateurs sur un poste de travail donné, cela ne fonctionne pas. Le est dans IE. Y a-t-il quelque chose qui cloche avec les cookies ou un réglage quelque part qui pourrait causer l'échec? Je n'ai jamais entendu parler d'une telle chose.

40
GBa

Le problème est que quand IE voit ceci: 

<meta http-equiv="refresh" content="0;http://www.example.com" />

il s'attend à ce que l'attribut content contienne un nombre. La seule fois où IE recherchera une URL, c'est si l'attribut content contient "URL =". La redirection la plus utilisable dans tous les navigateurs est donc la suivante: 

<meta http-equiv="refresh" content="0;URL=http://www.example.com" />

L'exemple ci-dessus redirigerait immédiatement, mais si vous changiez le 0 pour un autre numéro, il attendrait autant de secondes. J'espère que tout cela a du sens, que ça devrait marcher, mais je pense toujours que ma première idée était la meilleure.

73
Dave

Il existe un paramètre de sécurité dans Internet Explorer qui n'autorise pas l'actualisation des balises méta. Il est sous l'onglet Sécurité, puis choisissez Personnaliser le niveau et l'actualisation de la balise méta sous Divers. Si cela est désactivé, le méta-rafraîchissement ne fonctionnerait plus.

En plus de pouvoir le désactiver sélectivement, il est automatiquement désactivé si vous définissez le niveau de sécurité d'IE sur «Elevé» [observé dans IE9].

33
Austin

est-ce vraiment une ancienne version d'IE? Si oui, essayez:

<meta http-equiv="refresh" content="0;url=http://example.com/"> </meta>

Il faut un espace blanc. L'éditeur HTML se plaindra, mais ignorez-le.

5
Cal

Découvrez cette solution. Il gère à la fois javascript et méta-refresh: Meta-refresh et javascript

3
Haluk

La balise META n'est pas une balise vide et n'a pas de balise de fermeture en HTML, uniquement en XHTML. (Si vous envoyez vraiment du XHTML, il se peut que cela ne fonctionne pas correctement sur les anciennes versions de IE, il n’ya que des solutions de contournement pour envoyer XHTML vers des versions plus anciennes IE.)

Essayer:

<meta http-equiv="refresh" content="0;url=http://example.com/">

Description de la balise META W3 Schools

Vous pourriez aussi essayer:

  1. Vérification des versions majeure et mineure d'IE. Vous pouvez le faire dans l’option aide-> à propos du menu.
  2. IE a toujours été confondu avec les noms de fichiers et les types MIME. Assurez-vous que vous envoyez votre code HTML en tant que fichier d'extension htm ou html et que ces types de fichiers sont configurés sur votre serveur pour envoyer le type MIME text/html.
  3. Assurez-vous que votre serveur n'envoie pas un en-tête http conflictuel avec méta refresh.

Juste une supposition sauvage: peut-être y a-t-il des bloqueurs de publicité installés sur ces machines où la redirection ne fonctionne pas ... Vous ne pouvez trouver aucune autre raison pour laquelle cette technique courante fonctionne sur certaines machines alors qu'elle échoue sur d'autres pour vous.

0
Kosi2801

Si quelqu'un essaie d'utiliser la méta-actualisation pour rediriger vers une nouvelle URL dans les applications Facebook (application Page Tab ou application IFRAME), la balise est désactivée par Facebook.

La solution est:

<script>
top.window.location = 'http://example.com';
</script>

N'oubliez pas de cibler "top", car les applications Facebook sont dans IFRAME.

0
Raptor