URL Хеш-странности - PullRequest
       13

URL Хеш-странности

2 голосов
/ 08 октября 2010

Я заметил странное поведение в JS

window.location.hash = '';
var hash = window.location.hash;
alert(hash + ' = ' + hash.length);
//outputs: ' = 0'
window.location.hash = '#';
hash = window.location.hash;
alert(hash + ' = ' + hash.length);
//outputs: ' = 0'
window.location.hash = '_';
hash = window.location.hash;
alert(hash + ' = ' + hash.length);
//outputs: '_ = 2'

В основном я хочу вызвать три условия

  1. без хэша
  2. просто хеш
  3. хеш с текстом

однако похоже, что JS не видит разницы между example.com/ и example.com/# Также я не могу понять, как полностью удалить хеш.

Любая помощь?

1 Ответ

2 голосов
/ 08 октября 2010
  1. Как только хеш установлен, вы не можете удалить его полностью (например, удалить знак #), не вызывая перезагрузку страницы; это нормальное поведение.

  2. Установка пустого / нулевого хэша и установка хэша в хэш по умолчанию (#) обрабатываются одинаково; это просто внутреннее поведение. Не уверен, что все браузеры обрабатывают это последовательно, но IIRC так и есть.

В конечном счете, если вы хотите полностью удалить хэш, вам нужно будет выполнить команду document.location.href = document.location.href, чтобы перезагрузить страницу (window.location.reload() сохранит хэш).

...