¿Agregar un fragmento a la URL sin provocar una redirección?

Respuestas:

170
window.location.hash = 'something';

Eso es simplemente JavaScript.

Tu comentario...

Hola, lo que realmente necesito es agregar solo el hash ... algo como esto: window.location.hash = '#';pero de esta manera no se agrega nada.

Prueba esto...

window.location = '#';

Además, no se olvide del window.location.replace()método.

alex
fuente
Hola, lo que realmente necesito es agregar solo hash ... algo como esto: window.location.hash = '#'; pero de esta manera no se agrega nada ..
Dee
27

Para HTML directo, sin necesidad de JavaScript:

<a href="#something">Add '#something' to URL</a>

O, para tomar su pregunta más literalmente, simplemente agregue '#' a la URL:

<a href="#">Add '#' to URL</a>
Jess Telford
fuente
no es correcto, ya que necesita hacer clic en el enlace para cambiar el hash .. por lo que le falta la parte js donde activa el "clic" ..
Juan
@Juan ¿Por qué tenemos que "activar" un clic? La pregunta original acaba de preguntar cómo podemos agregar #a la URL. En realidad, hacer clic en un enlace como sugerí cumplirá con eso. No es necesario JS.
Jess Telford
1
Su respuesta describe cómo crear un enlace que, CUANDO se hace clic, agrega un fragmento a la URL. La pregunta pregunta cómo agregar un fragmento. Entonces, a su respuesta le falta la acción, es decir, el "clic"
Juan
2
Muy bien, puedo ver que la pregunta se interpreta de esa manera. Es de esperar que alguien todavía encuentre útil esta opción para su caso de uso.
Jess Telford
6
window.location.hash = 'whatever';
Daniel Lo Nigro
fuente
5
El #prefijo no es obligatorio.
alex
@alex: Ah, no estaba muy seguro de si era necesario o no. window.location.hash devuelve el hash con un prefijo #, así que asumí que sí. Gracias por la aclaración. :)
Daniel Lo Nigro
4
No se preocupe, y le hará preguntarse por qué siempre lo devuelve.
alex
0

Prueba esto

var URL = "scratch.mit.edu/projects";
var mainURL = window.location.pathname;

if (mainURL == URL) {
    mainURL += ( mainURL.match( /[\?]/g ) ? '&' : '#' ) + '_bypasssharerestrictions_';
    console.log(mainURL)
}
Tladi Ramahata
fuente