Pregunta

Estoy construyendo una biblioteca de JS que tiene un requisito de ver la forma [acción] ya [href] valores y resolverlas en las direcciones URL absolutas.

Por ejemplo, Estoy en http: // a / b / c / d; p q y encontrar un valor href de "../g" (suponer que no hay> elemento de base <). La absoluta resultante sería: http:. // a / b / g

¿Hay una biblioteca de JS que hace esto ya? Tendría que creerlo.

Para obtener más información sobre lo que se necesita, la especificación: http://tools.ietf.org/html/rfc3986#section-5.4

¿Fue útil?

Solución

Resulta que el atributo .href de un elemento A (no .getAttribute('href'), pero .href) devuelve el URL resuelto (absoluta).

Otros consejos

En los navegadores modernos, la incorporada en el URL asas constructor esto:

u = (new URL("?newSearch",
             "http://a.example/with/a/long/path.file?search#fragment")).href

(rendimientos http://a.example/with/a/long/path.file?newSearch)

Si desea que la base de que es relativa al documento actual, puede hacerlo de forma explícita:

u = (new URL("?newSearch", document.location)).href

El objeto URL también le da acceso a todos los componentes de URL (protocolo, host, ruta, de búsqueda, de hash, etc.).

Niza solución JS pura que funciona sin DOM: https://gist.github.com/1088850 (funciona en todas partes, pero especialmente útil para el lado del servidor JS).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top