Chrome 확장 프로그램에서 고아 스크립트 문제 해결
실수로 Chrome 확장 프로그램을 다시 로드한 후 복구하면 고아 스크립트가 발생하여 콘텐츠 간 통신 문제가 발생할 수 있습니다. 스크립트 및 확장의 다른 부분. 다음은 고아 스크립트를 제거하고 적절한 기능을 복원하는 솔루션입니다.
고아 스크립트 종료
고아 콘텐츠 스크립트는 여전히 DOM 메시지를 받을 수 있습니다. 창 개체를 통해 새 작업 콘텐츠 스크립트의 메시지를 고스트 콘텐츠 스크립트로 보냅니다. 메시지를 받으면 고아 스크립트는 다음을 수행해야 합니다.
콘텐츠에서. js:
<code class="javascript">var orphanMessageId = chrome.runtime.id + 'orphanCheck'; window.dispatchEvent(new Event(orphanMessageId)); window.addEventListener(orphanMessageId, unregisterOrphan); // ... Register event listeners with named functions to preserve their references function unregisterOrphan() { // ... Unregister listeners and remove global variables }</code>
콘텐츠 스크립트 삽입 보장
고아 스크립트로 메시지를 보내는 것을 방지하려면 popup.js에서 다음을 확인해야 합니다. 메시지를 보내기 전에 라이브 콘텐츠 스크립트가 실행됩니다.
<code class="javascript">async function sendMessage(data) { const [tab] = await chrome.tabs.query({ active: true, currentWindow: true }); if (await ensureContentScript(tab.id)) { return await chrome.tabs.sendMessage(tab.id, data); } } async function ensureContentScript(tabId) { // ... Check if content script is running and inject it if not }</code>
이러한 조치를 구현하면 분리된 스크립트를 효과적으로 제거하고 통신 문제를 방지하며 Chrome 확장 프로그램의 기능을 복원할 수 있습니다.
위 내용은 Chrome 확장 프로그램의 고아 스크립트로 인해 발생하는 통신 문제를 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!