2011-01-17 16 views
7

Me tropecé con un sitio que usa identificadores de fragmentos múltiples en sus URL, como http://www.ejeby.se/#newprodukt#produkt#1075#1 (no, no es mi sitio, pero sí estoy enlazándolo, lo cual me trae problemas).¿Se corrigen los identificadores de fragmentos múltiples en la URL?

¿Pero esto es realmente correcto? Parece causar problemas para Safari y posiblemente también para Internet Explorer (de oídas, no he probado IE).

¿No se supone que el identificador de fragmento identifica de forma única una ubicación de en el documento? ¿Es esto un error en Safari o es www.ejeby.se que utiliza identificadores de fragmentos de una manera incorrecta?

Editar: Parece que el problema para Safari es que se escapa todo # pero el primero en la URL. Los otros navegadores no hacen esto. Corregir el comportamiento o no?

Respuesta

9

Desde el punto de vista de la especificación, un fragment puede contener los siguientes caracteres (que ya han ampliado las producciones):

fragment = *(ALPHA/DIGIT/"-"/"."/"_"/"~"/"%" HEXDIG HEXDIG/"!"/"$"/"&"/"'"/"("/")"/"*"/"+"/","/";"/"="/":"/"@"/"/"/"?") 

Así que no, el fragmento no debe contener una llanura #; debe codificarse con %23.

Pero es posible que algunos navegadores lo visualicen de forma diferente al igual que las secuencias de octetos codificados en porcentajes, que representan caracteres UTF-8 válidos, se reemplazan por los caracteres que representan.

+0

No creo que solo se muestre de forma diferente, ya que http://www.ejeby.se/#newprodukt#produkt#1075#1 en Chrome lleva a la página correcta, pero http: //www.ejeby. se/# newprodukt% 23produkt% 231075% 231 en Safari lleva a resultados de búsqueda rotos (el penúltimo # se escapó con% 23). – Johan

+0

@Johan: ¿Qué versión de Safari usas? Porque funciona para mí (Safari 5 en Mac) y el primero con '#' se convierte automáticamente en el último con '% 23'. – Gumbo

+0

Eso es extraño. Uso Safari 5.0.3 en Snow Leopard, ninguno trabaja en Safari para mí (ya que escapa cosas, se llega a una página sin resultados de búsqueda). El primero funciona en Chrome/Firefox/Opera. – Johan

Cuestiones relacionadas