La balise Meta et javascript redirection du navigateur qui a la priorité?
Je suis en développement en PHP, à l'aide de Curl pour suivre des liens vers leur destination finale. J'ai parfois atteindre une page avec une balise meta de redirection ou une redirection javascript, et que vous voulez être assez intelligent pour eux de suivre. Si une page a la fois, qui dois-je suivre (c'est à dire, qui serait le premier feu)?
Exemple de balise meta refresh:
<meta http-equiv="refresh" content="0;URL='http://location1.com/'">
Exemple de code javascript d'actualisation:
<script>
window.location.href='http://location2.com/';
</script>
Je pense que dans certains cas, il s'agit d'une condition de concurrence... parfois, on va arriver en premier, parfois l'autre. J'ai été mordu par cette avant.
OriginalL'auteur Michael B | 2013-04-11
Vous devez vous connecter pour publier un commentaire.
Viens de créer ce fichier ( appelons
test.html
)Vous pouvez copier et enregistrer des. Une fois que vous l'ouvrez, vous serez dirigé vers
http://location2.com
Ne remarque que si le
<script>
balise n'est pas dans le<head>
tag, le<meta>
balise est exécuté en premier.OriginalL'auteur Nick Andriopoulos
Hexblot réponse est une bonne idée, il suffit de l'essayer si vous voulez voir ce qui se passe. Cependant, quand je l'ai fait essayer, Chrome est allé à location2, et IE suis allé à location1. De sorte qu'il semble être dépendant de l'implémentation. Vous pourriez voulez que ce soit une option configurable sur votre script. Dans la pratique, cependant, un site qui a une redirection dans une balise meta et un autre dans un script, c'est (un) peu probable, et (b) ne sont pas codés très bien, comme ils n'ont aucune idée de l'endroit où vous vous retrouverez.
C'est la seule semi-motif raisonnable, à la fois sur la même page que je peux penser, et les chances de destinations différentes sont assez petites, de sorte que vous pouvez probablement choisir l'un d'arbitraire, sans trop de risque.
OriginalL'auteur Ryan M
Je ne pense pas qu'il y est un bon moyen pour détecter un aurait le feu en premier.
La balise meta a la
content
attribut qui peut être utilisé pour spécifier un délai d'attente. Toutefois, en JavaScript, il est presque impossible de détecter si la redirection ne se passera comme il existe d'innombrables façons de l'écrire. Du moins pas sans l'exécuter. Exemple:OriginalL'auteur jgillich