2010-07-16 20 views
6

tengo comoJavascript: obtenga window.location todo menos el host?

http://www.mydomain.com/hello/you

con top.location.host, puedo conseguir "http://www.mydomain.com"

con window.location.href yo puede conseguir "http://www.mydomain.com/hello/you"

hay una oportunidad de obtener sólo "/hello/you" ???

+0

¿Qué podría tener esto que ver con jQuery? –

+0

Anurag: mientras edita, puede deshacerse de la llamada redundante 'toString' en' location.host'. –

+0

yikes @no, ¿lo sobreescribí mientras cambiabas? – Anurag

Respuesta

15
location.pathname 

pathname se única devolver la ruta. Si desea querystring y opcionalmente hash, deberá combinar las propiedades search y hash también. Considere esta url:

http://www.example.com/path/to/glory?key=value&world=cup#part/of/page 

location.pathname => "/path/to/glory" 
location.search => "?key=value&world=cup" 
location.hash  => "#part/of/page" 

Si desea toda la cosa,

/path/to/glory?key=value&world=cup#part/of/page 

a continuación, sólo concatenar todas estas cosas:

location.pathname + location.search + location.hash 

siempre quiso utilizar with en alguna parte. Esto se ve como la oportunidad perfecta :)

with(location) { 
    pathname + search + hash; 
} 
+0

No te olvides de 'buscar' y' hash'. –

+0

@Matthew - la cadena de consulta o el hash no figuraban en la pregunta de OP, por lo que no puedo suponer que él lo querrá, pero lo que puedo hacer es explicar mi respuesta :) – Anurag

0

Otro enfoque sería excluido el Protocolo de acogida y de todo el href usando subcadena.

window.location.href.substring(
    (window.location.protocol+'//'+window.location.host).length 
) 

si su URL es http://google.com/test?whatever=1#hello se volverá /test?whatever=1#hello.

Cuestiones relacionadas