¿Es posible eliminar el hash de window.location
sin hacer que la página salte-vaya a la parte superior? Necesito poder modificar el hash sin causar ningún salto.¿Cómo puedo eliminar el hash de ubicación sin hacer que la página se desplace?
tengo esto:
$('<a href="#123">').text('link').click(function(e) {
e.preventDefault();
window.location.hash = this.hash;
}).appendTo('body');
$('<a href="#">').text('unlink').click(function(e) {
e.preventDefault();
window.location.hash = '';
}).appendTo('body');
véase el ejemplo vivo aquí: http://jsbin.com/asobi
Cuando el usuario hace clic 'enlace' la etiqueta de hash se modifica sin saltos de página, por lo que está funcionando bien.
Pero cuando el usuario hace clic en 'unlink' se ha eliminado la etiqueta de has y la página se desplaza hacia la parte superior. Necesito eliminar el hash sin este efecto secundario.
Déjame adivinar: el cliente piensa que el hash es feo y está contaminando la URL de otra manera agradable y limpio, que dice lo siguiente: http: // www.example.com/ (sin los espacios en blanco)? – anddoutoi
Buena conjetura, pero no. Tengo ventanas modales bookmarkable basadas en direcciones hash, y cuando el usuario cierra la ventana, el hash debe ir. – David
Soy consciente de que esta pregunta tiene casi 2 años, pero este comentario puede ayudar a un lector futuro. Si realmente desea eliminar el hash, puede cambiar la url usando history.pushState(). https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#Example – ambiguousmouse