Редактировать: Прошла пара лет, и браузеры эволюционировали.
@ ответ Luxiyalu - это путь
- Старый ответ -
Я тоже думаю, что это невозможно (в настоящее время). Но зачем вам менять значение хеша, если вы не собираетесь его использовать?
Я полагаю, что основная причина, по которой мы используем значение хеш-функции в качестве программистов, состоит в том, чтобы позволить пользователю добавить в закладки наши страницы или сохранить состояние в истории браузера. Если вы не хотите делать ничего из этого, просто сохраните состояние в переменной и работайте оттуда.
Я думаю, что причина использования хэша заключается в работе со значением, которое находится вне нашего контроля. Если вам это не нужно, то это, вероятно, означает, что у вас все под контролем, поэтому просто сохраните состояние в переменной и работайте с ним. (Мне нравится повторяться)
Надеюсь, это поможет вам. Может быть, есть более простое решение вашей проблемы.
UPDATE:
Как насчет этого:
- Настройте первый хеш и убедитесь, что он сохраняется в истории браузера.
- Когда будет выбрана новая вкладка, сделайте
window.history.back(1)
, которая вернет историю из вашего первого хеша инициализации.
- Теперь вы устанавливаете новый хеш, поэтому табуляция сделает только одну запись в истории.
Возможно, вам придется использовать некоторые флаги, чтобы узнать, можно ли «удалить» текущую запись, вернувшись назад, или просто пропустите первый шаг.
И чтобы убедиться, что ваш метод загрузки для «хэша» не выполняется, когда вы заставляете history.back
.