2010-08-13 20 views
8

stavo attraversando un sito web che ho preso il sopravvento e mi sono imbattuto in questa sezione in una delle pagine:Perché utilizzare window.location in un collegamento ipertestuale?

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

A quanto pare chiunque abbia mai usato il sito senza javascript non sarebbe in grado di accedere in modo corretto (sorprendentemente, questo non è mai venuto fuori).

Quindi la prima cosa che viene in mente è

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

poi ho capito che non so perché sto mantenendo la chiamata JavaScript intorno a tutti. Sono solo un po 'confuso sul motivo per cui sarebbe stato scritto in quel modo, in primo luogo, quando un collegamento regolare avrebbe funzionato bene. Che vantaggio ha window.location oltre un normale collegamento?

Questo è anche l'unico posto nel sito Web che ho visto qualcosa di simile a questo fatto (finora).

Modifica: Il programmatore prima di me era altamente competente, il che è in realtà il motivo per cui mi chiedevo se c'era qualcosa che non stavo prendendo in considerazione o se ha semplicemente fatto una semplice supervisione.

+1

forse un tentativo di nascondere l'URL nella barra di stato del browser? –

+1

@Russ, l'URL non dovrebbe apparire nell'HTML come qualsiasi normale HTML? Pertanto, quando si fa clic, il browser visualizza l'URL nella barra degli indirizzi come normale? – DaveDev

+0

È questo l'unico collegamento come quello o lo stanno facendo di conseguenza? – Jeroen

risposta

3

ci sono tre possibilitá:

  1. Lo sviluppatore stava cercando di far rispettare utilizzare Javascript prima di inviare l'utente lungo.
  2. Lo sviluppatore stava cercando di mascherare il href nel collegamento. Forse era così che non sarebbe stato sottoposto a scansione efficace, o la barra di stato aveva qualcosa a che fare con esso.
  3. Lo sviluppatore era un anticonformista.

Vorrei rimuoverlo e vedere se si rompe. Ma poi di nuovo, sono un conformista.

+1

Sono d'accordo con il punto 2, a condizione che il "non conformista" del punto 3 sia cambiato in "non competente" (amo i termini ironici :-)) ... comunque la ragione per cui sono d'accordo con il secondo punto è che forse non sanno cosa sia un file Robots.txt e questo è l'unico modo in cui potrebbero impedire a Google di cercare costantemente di uscire? – DaveDev

0

Potrebbe essere perché si utilizzano più domini e quale non era chiaro o non facilmente disponibile nel codice?

+1

ma che sarebbe stato rappresentato dal '<% = GetSignOutUrl()%>' comunque. '<% = GetSignOutUrl()%>' restituisce solo un URL (per l'aspetto di esso) perché 'javascript: window.location' ha bisogno di un URL per funzionare – DaveDev

+0

Sì, e potresti anche avere un link di disconnessione relativo che wouldn non preoccuparti del dominio – spig

1

La mia ipotesi è che se lo sviluppatore non sapesse considerare la capacità del client di eseguire javascript, potrebbe non sapere cosa sia un href. È improbabile ma non impossibile.

0

Questo potrebbe essere un tentativo di nascondere il collegamento dai motori di ricerca.

Problemi correlati