2010-09-27 15 views
9

jaki jest najprostszy sposób zwrócenia "ścieżki dostępu" z atrybutu href znaczników zakotwiczenia?Uzyskaj nazwę ścieżki od href w JavaScript

przykład ... że mam:

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

muszę wrócić tylko ten "/this/is/my/path.html" część.

Pomysły? Używam jQuery, jeśli pomaga ..

Dzięki!

+2

Zobacz [ Jak analizować adres URL na nazwę hosta i ścieżkę w javascript? ] (http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into-hostname-and-path-in-javascript). –

Odpowiedz

20

myślę, że można użyć ścieżka

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

Tak, to jest takie proste. http://www.devguru.com/technologies/ecmascript/quickref/location_pathname.html –

+6

Potencjalne ostrzeżenie z tym stwierdzeniem: Zauważyłem, że IE da ci to bez gł. cięć, podczas gdy każda inna przeglądarka działa? Zobacz http://stackoverflow.com/questions/956233/javascript-pathname-ie-quirk i 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: Przerwany link. – rvighne

4

patrz przykład pracuje tutaj .. 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

Zobacz mój komentarz na temat drugiej odpowiedzi na tej stronie dotyczącej nieprawidłowości w IE, która nie zwraca początkowego/początkowego slasha na ścieżce, ani w jaki sposób działa to we wszystkich innych przeglądarkach, które to robią. (FF, chrome, safari i opera wszystko robią.) JsFiddle dostarczony tutaj jest naprawdę pomocny do przetestowania i zobaczenia tego po otwarciu we wszystkich twoich różnych przeglądarkach. – Funka

1

I zauważyłem, że jest Nadal nie ma właściwej odpowiedzi, która zajmuje się IE bug że @Funka wspomniano, więc tu jest moje rozwiązanie:

HTML

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

JS

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

Wyniki '/ foo' na wszystkich przeglądarkach

+0

'href' różni się od' pathname', gdy istnieją argumenty zapytania lub kotwice ('/ foo # bar') – Coderer

Powiązane problemy