Dodać fragment do adresu URL bez powodowania przekierowania?


86

Czy istnieje sposób, jak dodać hash # do mojego adresu URL bez przekierowania?

Odpowiedzi:


170
window.location.hash = 'something';

To jest po prostu zwykły JavaScript.

Twój komentarz...

Cześć, naprawdę potrzebuję dodać tylko hash ... coś takiego: window.location.hash = '#';ale w ten sposób nic nie jest dodawane.

Spróbuj tego...

window.location = '#';

Nie zapomnij też o window.location.replace()metodzie.


Cześć, naprawdę potrzebuję tylko dodać hash ... coś takiego: window.location.hash = '#'; ale w ten sposób nic nie jest dodawane ..
Dee

27

Dla prostego kodu HTML, bez wymaganego JavaScript:

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

Lub, aby potraktować pytanie bardziej dosłownie, po prostu dodaj „#” do adresu URL:

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

niepoprawne, ponieważ musisz kliknąć link, aby zmienić hash .. więc brakuje ci części js, w której uruchamiasz "kliknięcie" ..
Juan

@Juan Dlaczego musimy „wywołać” kliknięcie? Pierwotne pytanie dotyczyło właśnie tego, jak możemy dodać #do adresu URL. Właściwie kliknięcie linku, jak sugerowałem, spełni to. Nie potrzeba JS.
Jess Telford

1
Twoja odpowiedź opisuje, jak utworzyć link, który po kliknięciu dodaje fragment do adresu URL. Pytanie dotyczy dodania fragmentu. Tak więc w Twojej odpowiedzi brakuje akcji, czyli „kliknięcia”
Juan

2
W porządku, widzę, że pytanie jest interpretowane w ten sposób. Mam nadzieję, że ktoś nadal uzna tę opcję za przydatną w swoim przypadku użycia.
Jess Telford

6
window.location.hash = 'whatever';

5
#Prefiks nie jest wymagane.
alex

@alex: Ach, nie byłem pewien, czy jest to wymagane, czy nie. window.location.hash zwraca hash z przedrostkiem #, więc założyłem, że tak. Dziękuję za wyjaśnienie. :)
Daniel Lo Nigro

4
Bez obaw - i sprawia, że ​​zastanawiasz się, dlaczego zawsze to zwraca.
alex

0

Spróbuj tego

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

if (mainURL == URL) {
    mainURL += ( mainURL.match( /[\?]/g ) ? '&' : '#' ) + '_bypasssharerestrictions_';
    console.log(mainURL)
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.