- document.hidden, document.visibilityState 강제 오버라이드
(페이지의 lazy loading 코드가 탭 상태를 확인해도 항상 visible)
- IntersectionObserver 후킹 유지 (observe 즉시 콜백)
- 두 조치로 백그라운드 탭에서도 일반 탭처럼 IO + 이미지 로딩 동작
- getEpisodesFromList() 공통 헬퍼로 에피소드 추출 로직 분리
- startQueue() 공통 헬퍼로 큐 저장 + 이동 로직 분리
- downloadAfterEpisode(): prompt로 시작 번호 입력받아 필터링
- downloadRangeEpisodes(): prompt로 범위 입력받아 필터링
- 필터링된 결과는 번호 오름차순 정렬 후 다운로드
- @run-at document-start로 변경하여 페이지 스크립트보다 먼저 실행
- IntersectionObserver.observe() 후킹: observe() 즉시 콜백 실행하도록 하여
백그라운드 탭에서도 IntersectionObserver가 동작하게 함
- 기존 로직은 DOMContentLoaded 후 실행되도록 main() 함수로 분리
- scrollHeight 동적 대응 로직 유지
- iframe/팝업/XHR 대신 페이지 직접 이동 방식으로 전환
- sessionStorage 기반 큐로 전체 에피소드 연속 다운로드
- 동적 scrollHeight에 대응하는 lazy 로딩 트리거
- 공통 헬퍼: downloadImagesAsZip, getImagesWithLazyLoad
- GM_unregisterMenuCommand로 메뉴 중복 등록/배지 누적 해결
- 안전한 로거(log)로 console 차단 사이트 대응
- Next.js SPA pushState/replaceState 감지하여 메뉴 재등록