Додати фрагмент до URL-адреси, не викликаючи перенаправлення?


86

Чи є спосіб, як додати хеш # до моєї URL-адреси без перенаправлення?

Відповіді:


170
window.location.hash = 'something';

Це просто JavaScript.

Ваш коментар ...

Привіт, мені дійсно потрібно додати лише хеш ... приблизно так: window.location.hash = '#';але таким чином нічого не додається.

Спробуйте це...

window.location = '#';

Також не забувайте про window.location.replace()метод.


Привіт, мені дійсно потрібно додати лише хеш ... приблизно так: window.location.hash = '#'; але таким чином нічого не додається ..
Ді

27

Для прямого HTML, без JavaScript:

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

Або, якщо сприймати своє питання більш буквально, просто додати "#" до URL-адреси:

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

невірно, оскільки вам потрібно натиснути посилання, щоб змінити хеш .. тому вам не вистачає частини js, де ви запускаєте "клацання" ..
Хуан,

@Juan Чому нам потрібно "викликати" клік? Оригінальне запитання просто запитувало, як ми можемо додати #URL-адресу. Насправді, натиснувши посилання, як я запропонував, це буде виконано. Не потрібно JS.
Джесс Телфорд,

1
Ваша відповідь описує, як створити посилання, яке, КЛІК натиснувши, додає фрагмент до URL-адреси. Питання задає питання, як додати фрагмент. Отже, у вашій відповіді не вистачає дії, тобто "клацання"
Хуан

2
Досить справедливо, я бачу, що питання трактується так. Сподіваємось, хтось все-таки знайде цей варіант корисним для свого випадку використання.
Джес Телфорд,

6
window.location.hash = 'whatever';

5
#Префікс не потрібно.
alex

@alex: Ах, я не був надто впевнений, потрібно це чи ні. window.location.hash повертає хеш із префіксом #, тому я припустив, що це було. Дякую за роз'яснення. :)
Даніель Ло Нігро

4
Не хвилюйтеся - і це змушує вас задуматися, чому це завжди повертає.
alex

0

Спробуйте це

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

if (mainURL == URL) {
    mainURL += ( mainURL.match( /[\?]/g ) ? '&' : '#' ) + '_bypasssharerestrictions_';
    console.log(mainURL)
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.