navigate event depends on hashchange for older browsers