2012-02-09 27 views
6

Tengo una lista de URLs que nuestros usuarios han ingresado para sitios web de varios clientes ... Estoy cargando esta lista del servidor en una grilla para los usuarios para ver ... Hice clic en las URL envolviéndolas con una etiqueta href HTML ... el problema es, veces el usuario ingresa las URL sin http: // o www. prefijo y, por lo tanto, el navegador los trata como URL relativas que nunca son el caso, ya que todos estos sitios web son para nuestros clientes y todos son externos. ¿Hay alguna manera de forzar que estas URL se traten como absolutas en lugar de relativas?HTML force URL hyperlink para ser tratado como no relativo (absoluto)

Aquí se muestra un ejemplo:

<a target='_blank' href='google.com'>google.com</a> 

Si intenta esto, verá que el navegador se asuma que es una ruta relativa que no debería ser el caso.

Gracias


Solución:

que he elegido para comprobar si hay '//' (porque no sé lo que el protocolo es - podría ser http o https) y si no se encontrado, supongo que es un sitio web http y prefijo la URL con eso - así que en resumen no hay manera de forzar el navegador para tratar los hipervínculos como absoluto

Respuesta

2

¿Por qué no preprocesamos la entrada y anexamos http:// cuando es necesario?

+0

Podría ... pero hay muchas variaciones para manejar, muchas URL y algunas veces tienen www. a veces no tienen y tienen otros subdominios, etc ... no tan limpio como cabría pensar ... Esperaba una forma más limpia – Ayyoudy

+0

agregando simplemente http: // funcionaría, este parece ser uno tan limpio como siempre y cuando no espere que cambien protocolos como ftp, etc. ... –

+0

como dije, a veces ya tienen http: //, así que todavía tengo que marcar – Ayyoudy

0

Es es un URI relativo.

Si desea hacer un enlace a http://google.com/, entonces ahí es donde tiene que enlazar.

Puede moderar los URI que está ajustando, o tratar de adivinar algorítmicamente si se pretendía que fuera un enlace relativo o no.

Tenga en cuenta que no puede suponer con seguridad que debe haber un www. ya que el uso de eso para sitios web es solo una convención, y ya no es muy seguido.

0

Puede agregar // antes de la url y esto debería funcionar.

Cuestiones relacionadas