저는 외부 서비스(정확히 말하면 Rumbletalk 채팅 엔진)를 래핑하는 매우 기본적인 플러그인을 작성했습니다. 플러그인은 제가 원하는 대로 작동하며, 채팅도 잘 동작합니다. 단, 채팅에서 사이트의 다른 부분으로 이동했다가 다시 채팅으로 돌아올 때만 예외가 발생합니다. 포함되는 JavaScript에서 중복된 채팅을 생성하려고 한다는 오류가 발생합니다.
어딘가 DOM에 렌더링된 HTML이 여전히 남아 있고, 이 script 태그가 다시 로드되고 실행될 때 이를 감지한다고 추정하고 있습니다. 개발자 콘솔에서 디버깅을 해보면, 로그인 코드에서 발생하는 것이 아니라 script 태그의 JavaScript에서 오류가 throw되는 것을 확인할 수 있습니다.
Rumbletalk 직원들에게 문의했지만 아직 답변을 받지 못했습니다. 다음으로 무엇을 살펴봐야 할지 조언을 주실 분이 있을까요? 제가 할 수 있는 유일한 방법은 window.onerror 핸들러를 추가한 후 location.reload()를 호출하는 것입니다. 물론 이는 좋은 해결책이 아닙니다. 페이지가 포커스를 잃을 때 채팅 엔진의 DOM 객체를 'flush’하는 방법이 있을까요?