2010-09-27 14 views
9

qual è il modo più semplice per restituire il "nome percorso" da un attributo href tag di ancoraggio?Ottieni il percorso da href in Javascript

esempio ... dire che ho:

<a href="http://www.example.com/this/is/my/path.html">Blah</a> 

ho bisogno di tornare solo questa parte "/this/is/my/path.html".

Idee? Sto usando jQuery se aiuta ..

Grazie!

+2

Vedere [ Come analizzare un URL in nome host e percorso in javascript? ] (http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into-hostname-and-path-in-javascript). –

risposta

20

Penso che si possa utilizzare percorso

$('a')[0].pathname; 
+0

Sì, è così semplice. http://www.devguru.com/technologies/ecmascript/quickref/location_pathname.html –

+6

Avviso potenziale con questo: sto trovando che IE ti darà questo _ senza una barra, mentre ogni altro browser lo fa? Vedi http://stackoverflow.com/questions/956233/javascript-pathname-ie-quirk e http://blogs.msdn.com/b/ieinternals/archive/2011/02/28/internet-explorer-window-location -pathname-missing-slash-and-host-has-port.aspx – Funka

+0

@ SamuelSjöberg: collegamento interrotto. – rvighne

4

vedi esempio di lavoro qui .. http://jsfiddle.net/TvNmL/

HTML ..

<a id='lnk' href="http://www.example.com/this/is/my/path.html">Blah</a> 

javascript ...

alert(document.getElementById('lnk').pathname); 
+0

Vedere il mio commento sull'altra risposta in questa pagina relativa all'irregolarità in IE che non restituisce la barra iniziale/iniziale nel percorso, rispetto a come funziona in tutti gli altri browser che lo fanno. (FF, chrome, safari e opera lo fanno tutti.) Il JsFiddle fornito qui è davvero utile per testarlo e vederlo dopo averlo aperto in tutti i diversi browser. – Funka

1

I notato che c'è ancora nessuna risposta corretta che si occupa il bug di IE che @Funka accennato, ecco la mia soluzione:

HTML

<a href="/foo" id="foo">My link</a> 

JS

document.getElementById("foo").getAttribute("href"); 

risultati '/ foo' su tutti i browser

+0

'href' differisce da' pathname' quando ci sono argomenti di query o ancore ('/ foo # bar') – Coderer

Problemi correlati