2010-11-25 3 views
1

Certains de mes utilisateurs créent des liens qui ressemblent àComment les navigateurs interprètent-ils les hrefs qui commencent par "http: /"?

<a href='http:/some_local_path'>whatever</a> 

J'ai remarqué que Firefox interprète cela comme

<a href='/some_local_path'>whatever</a> 

Puis-je compter sur cela se produise dans tous les navigateurs? Ou devrais-je supprimer le http:/ s moi-même?

+0

Vous feriez mieux de vous assurer que cela n'arrivera jamais. Le premier formulaire est invalide et personne ne peut garantir qu'il fonctionnera comme prévu. Le deuxième est correct, cependant. – jwueller

+0

Ni l'un ni l'autre ne fonctionne pour moi dans IE8. –

Répondre

4

Ceci est une URL inhabituelle, mais n'est pas invalide. La spécification d'URL indique que les composants omis sont définis par défaut à partir de l'URL de base, qui peut être fournie explicitement dans une balise <base> ou, à défaut, l'URL actuelle de la page. Quand un navigateur voit /some_local_path, il manque un schéma et un hôte, il les prend donc à partir de l'URL de base. Lorsque vos utilisateurs mettent http:/some_local_path, il a un schéma explicite, mais il manque un hôte, donc l'hôte par défaut à l'URL de base. Si votre page est une page http:, les deux URL seront interprétées de manière identique. Cela dit, ces URL ne sont certainement pas ce que vos utilisateurs voulaient. Vous les aiderez si vous signalez leur erreur.

1

Il est toujours préférable de valider les données saisies par les utilisateurs. Inévitablement, vous aurez quelque chose d'inattendu.

Questions connexes