필자가 작성한 스크립트를 삽입하여 Gmail에 추가 기능을 추가하는 Chrome 확장 프로그램을 만들고 있습니다. '주사 스크립트'는 this definition을 참조하십시오.Google 크롬 확장 프로그램을 통해 Gmail에 코드 삽입 -로드가 완료되면 내 스크립트가 삽입되도록하는 방법?
내 콘텐츠 스크립트는 ["https://mail.google.com/mail/*"]
에 일치합니다.
그러나이 문제는 Gmail이로드되고로드가 완료 될 때와 동일한 URL이라는 점에 있습니다. 결과적으로 Gmail이로드되는 중에 참조 스크립트 오류가 발생하면서 스크립트가 너무 일찍 삽입되는 것으로 나타납니다.
이 문제를 회피하려고, 난 단지 수행하여 부하에 내 스크립트를 실행 해요 :합니다 (주입을 수행하는)이 조건에 해당하는 경우, 그것은 단지 주입window.addEventListener("load", runInjectedScript);
을 그리고 내 콘텐츠 스크립트 : if (window.self === window.top)
.
그러나 Gmail이로드를 완료하고받은 편지함이 나타나면 이러한 조치로 인해 적절한 시간에 내 스크립트가 항상 주입되지 않을 수도 있습니다. 어떻게 이런 일이 일어날 수 있습니까? 내가 구현하지 않은 기술이 있습니까?
gmails JS 내에서 특정 기능을 사용하려고합니까? 변수가 아직 정의되었는지 확인하기 위해 setTimeout을 할 수 있습니다. – Dave
@Dave는 페이지가로드되지 않은 경우 자체를 다시 호출하는 setTimeout 함수를 제안했다고 생각합니다. 단순히 _n_ 밀리 초마다 확인하고 다시 실행하거나 페이지가로드되면 콜백을 실행하십시오. – Archer
@ user5508297 맞습니다. 또는 setInterval을 사용하여 요구 사항이 충족되면 간격을 지울 수 있습니다. 코드를 대답으로 씁니다. – Dave