javascript jquery hash href window.location

javascript - ¿Cuál es la diferencia entre "window.location.href" y "window.location.hash"?



jquery (7)

Aquí está el ejemplo simple de la diferencia entre window.location.href y window.location.hash

Para la URL http://www.manm.com/member/#!create :

  • href: http://www.manam.com/member/#!create
  • hash: #!create

Aprendí "window.location.hash" como nuevo y probé en mi código jquery en lugar de "window.location.href" y ambos dieron los mismos resultados.

El código está aquí:

window.location.href = ($(e.currentTarget).attr("href")); window.location.hash = ($(e.currentTarget).attr("href"));

¿Cuál es la diferencia entre ellos?


La propiedad hash devuelve la parte de ancla de una URL, incluido el signo de almohadilla (#).


Para una URL como http://[www.example.com]:80/search?q=devmo#test

hash devuelve la parte de la URL que sigue al símbolo #, incluido el símbolo #. Puede escuchar el evento hashchange para recibir notificaciones de los cambios en el hash al admitir navegadores.

Returns: #test

href devuelve la URL completa.

Returns: http://[www.example.com]:80/search?q=devmo#test

Lee mas


Pruébelo, por ejemplo, http://.com/#Page

href = http://.com/#Page

hash = #Page


Una diferencia importante es que window.location.hash está urldecoded, mientras que el identificador de fragmento en window.location.href no está urldecoded. En otras palabras:

window.location.hash.split(''#'')[1] != window.location.href.split(''#'')[1]

Si la URL es http://example.com/page#3%3D3 entonces:

window.location.hash.split(''#'')[1] == ''3=3'' window.location.href.split(''#'')[1] == ''3%3D3''

En otras palabras:

window.location.hash.split(''#'')[1] == decodeURIComponent(window.location.href.split(''#'')[1])



hash y href son ambas propiedades del objeto window.location . hash es la parte de la URL del # on (o una cadena vacía si no hay # ), mientras que href es una representación de cadena de toda la URL.