use history.pushState instead of location.hash to avoid jumping when navigating through several errors at the same line location