101
From what I see in other SO questions, the only workable cross-browser solution is a timer. Check out this question for example.
(Just for the record.) The YUI3 "hashchange" synthetic event does more or less the same thing as the accepted answer
YUI().use('history-hash', function (Y) {
Y.on('hashchange', function (e) {
// Handle hashchange events on the current window.
}, Y.config.win);
});