fix hashchange bug