2010-08-13 13 views
8

yo estaba pasando por un sitio web que he tomado sobre y encontré esta sección en una de las páginas:¿Por qué usar window.location en un hipervínculo?

<a href="javascript:window.location='<%=GetSignOutUrl()%>';"> 
    // img 
</a> 

Al parecer, cualquiera que haya utilizado el sitio sin javascript no sería capaz de cerrar la sesión correctamente (sorprendentemente, esto nunca ha surgido).

Así que la primera cosa que viene a la mente es

<a href="<%=GetSignOutUrl()" onclick="javascript:window.location='<%=GetSignOutUrl()%>';"> 
    // img 
</a> 

Entonces me di cuenta de que no sé por qué me quedo con la llamada javascript en torno a todos. Estoy un poco confundido de por qué habría sido escrito así en primer lugar cuando un enlace normal hubiera funcionado bien. ¿Qué beneficio tiene window.location solo por un enlace normal?

Este es también el único lugar en el sitio web que he visto algo como esto hecho (hasta ahora).

Editar: El programador antes que yo era muy competente, que en realidad es por eso que preguntaba si había algo que no estaba tomando en cuenta o si se acaba de hacer un simple descuido.

+1

quizás un intento de ocultar la URL en la barra de estado del navegador? –

+1

@Russ, ¿no aparecería la URL en el HTML representado como cualquier HTML normal? Por lo tanto, cuando se hace clic, el navegador mostrará la URL en la barra de direcciones como de costumbre. – DaveDev

+0

¿Es este el único enlace así o lo están haciendo en consecuencia? – Jeroen

Respuesta

3

Existen tres posibilidades:

  1. El desarrollador estaba tratando de hacer cumplir Javascript utilizar antes de enviar al usuario a lo largo.
  2. El desarrollador estaba tratando de enmascarar el href en el enlace. Tal vez esto fue para que no se rastreara de manera efectiva, o la barra de estado tuviera algo que ver con eso.
  3. El desarrollador era un inconformista.

Me quitarlo y ver si se rompe. Pero, de nuevo, soy conformista.

+1

Estoy de acuerdo con el punto 2, con la condición de que en vez de punto de 3 "inconformista" cambiará a "no competente" (Me encanta acuñar términos irónicos :-)) ... de todos modos la razón por la que estoy de acuerdo con el punto dos es que tal vez no saben qué es un archivo Robots.txt, y esta es la única forma en que podrían evitar que Google intente cerrar sesión constantemente? – DaveDev

0

Podría ser debido a múltiples dominios posiblemente se utilizan y cuál era poco clara o no fácilmente disponibles en el código?

+1

pero eso habría sido explicado por '<% = GetSignOutUrl()%>' de todos modos. '<% = GetSignOutUrl()%>' solo devuelve una URL (por su aspecto) porque 'javascript: window.location' necesita una URL para funcionar – DaveDev

+0

Sí, y también podría tener un enlace de cierre de sesión relativo que wouldn No te molestes con el dominio. – spig

1

Mi conjetura es que si el desarrollador no sabía que considerar la capacidad del cliente de JavaScript de ejecución, puede ser que no han sabido lo que es a href. Es poco probable pero no imposible.

0

Esto podría ser un intento de ocultar el enlace de los motores de búsqueda.