크로미움이나 개코 엔진의 경우 새로고침을 하더라도 스크롤 위치가 보전된다. 사파리에서는 그렇지 않으므로 수동으로 스크롤 위치를 조절해주어야 한다.
window.scrollY를 scrollPosition이라는 변수에 저장하고 (단, 새로고침 후에도 살아남는 스토리지나 파라미터여야 한다.) 새로고침을 감지하면 다음과 같이 timeout을 두고 스크롤하면 된다.
window.setTimeout(() => window.scrollTo(0, scrollPosition), 100);
타임아웃 없이 그냥 scrollTo를 하면 사파리가 명령을 무시해버리므로 필수적이다.