Событие window@hashchange
<a href="#hash">Смена путем перехода по якорю</a>
<button onclick="location.hash = 'abc'">Смена скриптом</button>
<script>
window.onhashchange = function(e){
alert(e.type + ' hash =' + location.hash);
};
</script>
Привел пример срабатывания при переходе по анкору и при смене значения через javascript. Но сработает также при любом изменении хэш-составляющей, будь то навигация по истории или правка строки адреса вручную.