Adicionar um fragmento ao URL sem causar um redirecionamento?


86

Existe uma maneira de adicionar hash # ao meu URL sem redirecionar?

Respostas:


170
window.location.hash = 'something';

Isso é simplesmente JavaScript.

Seu comentário...

Olá, o que eu preciso mesmo é adicionar apenas o hash ... algo assim: window.location.hash = '#';mas dessa forma nada é adicionado.

Experimente isso ...

window.location = '#';

Além disso, não se esqueça do window.location.replace()método.


HI, o que eu realmente preciso é adicionar apenas hash ... algo assim: window.location.hash = '#'; mas desta forma nada é adicionado ..
Dee

27

Para HTML direto, sem a necessidade de JavaScript:

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

Ou, para levar sua pergunta mais literalmente, apenas adicionar '#' ao URL:

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

incorreto, pois você precisa clicar no link para alterar o hash .. então está faltando a parte js onde você aciona o "clique" ..
Juan

@Juan Por que precisamos "acionar" um clique? A pergunta original acabou de perguntar como podemos adicionar o #ao URL. Na verdade, clicar em um link como sugeri irá cumprir isso. Nenhum JS necessário.
Jess Telford,

1
Sua resposta descreve como criar um link que, QUANDO clicado, adiciona um fragmento ao url. A questão pergunta como adicionar um fragmento. Portanto, sua resposta está faltando ação, ou seja, o "clique"
Juan,

2
Muito justo, posso ver a pergunta sendo interpretada dessa forma. Esperançosamente, alguém ainda achará esta opção útil para seu caso de uso.
Jess Telford,

6
window.location.hash = 'whatever';

5
O #prefixo não é obrigatório.
alex

@alex: Ah, eu não tinha certeza se era necessário ou não. window.location.hash retorna o hash com um prefixo #, então presumi que fosse. Obrigado pelo esclarecimento. :)
Daniel Lo Nigro

4
Não se preocupe - e isso faz você se perguntar por que ele sempre o retorna.
alex

0

Tente isto

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

if (mainURL == URL) {
    mainURL += ( mainURL.match( /[\?]/g ) ? '&' : '#' ) + '_bypasssharerestrictions_';
    console.log(mainURL)
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.