Я обычно стараюсь избегать window.location.hash
, потому что он не одинаков для всех браузеров.
Таким образом, вместо того, чтобы делать следующее
window.location.hash = "some hash value";
Я бы сделал
window.location.href = window.location.href.split("#")[0] + "#" + encodeURIComponent("some hash value");
Более того, хотя Firefox показывает декодированный хэш в адресной строке (то есть '' вместо% 20), если вы попытаетесь скопировать адрес, он фактически закодирован. Таким образом, показывается не то, что в URI.
Кроме того, я всегда обращаюсь к хешу, используя следующий код
var hash_val = window.location.href.split("#")[1] || "";