Ну как то так наверное, наверняка можно и лучше.
<html>
<head>
<script>
function checkHash(hash, callback) {
if (hash != location.hash)
callback(); //Если hash изменился то вызываем обработчик.
hash = location.hash; //Сохраняем hash строку в переменную.
setTimeout(function() {checkHash(hash, callback);}, 1000); //Проверяем hash снова через секунду.
}
function changed() { // Функция обработчик, вызывается когда меняется hash.
alert('Hash changed');
}
hash = location.hash;
checkHash(hash, changed); // Инициализируем проверку hash'a
</script>
</head>
<body>
<a href="#check">check</a><br />
<a href="#second">second</a>
</body>
</html>