Provo a buttare giù qualcosa:
codice:
if ("onhashchange" in window) {
    window.onhashchange = funzione_da_richiamare;
}
else {
    oldHash = location.hash;
    setInterval(function () {
        if (location.hash != oldHash) {
            oldHash = location.hash;
            funzione_da_richiamare();
        }
    }, 100);
}