>웹 프론트엔드 >JS 튜토리얼 >Chrome 확장 프로그램에서 고아 콘텐츠 스크립트로 인해 발생하는 \'runtime.lastError\' 오류를 수정하는 방법은 무엇입니까?

Chrome 확장 프로그램에서 고아 콘텐츠 스크립트로 인해 발생하는 \'runtime.lastError\' 오류를 수정하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-31 15:49:021034검색

How to Fix

Chrome 확장 업데이트 후 분리된 스크립트 해결

문제:

실수로 Chrome 확장 프로그램을 다시 로드한 후 "런타임. "고아" 콘텐츠 스크립트로 인해 lastError" 오류가 발생하여 팝업 페이지와 콘텐츠 페이지 간의 통신 실패가 발생합니다.

해결책:

이 문제를 해결하려면 창 메시지를 활용하여 다시 삽입된 콘텐츠 스크립트의 신호를 고아 스크립트로 브로드캐스트할 수 있습니다. 그러면 고아 스크립트는 리스너 등록을 취소하여 가비지 수집에 사용할 수 있게 됩니다.

구현:

background.js

다음에 콘텐츠 스크립트 재주입을 구현합니다. 확장 프로그램 다시 로드/설치.

content.js

  • chrome.runtime.id를 사용하여 고유한 고아 메시지 ID를 생성합니다.
  • 고아 메시지 ID 이벤트를 전달하고 추가합니다. 이벤트 리스너로 처리하세요.
  • 객체 참조를 보존하려면 이름이 지정된 함수로 모든 리스너를 등록하세요.
  • 활성 콘텐츠 스크립트를 나타내려면 running = true를 사용하세요.

unregisterOrphan 함수

  • 확장이 활성화되어 있는지 확인하세요.
  • 고아 메시지 리스너와 다른 모든 이벤트 리스너를 제거하세요.

onMessage 함수

  • 수신 메시지를 처리합니다.

onMouseMove 함수

  • DOM 이벤트 처리를 실행하여 처리 전 고아 상태를 확인합니다.

popup.js

  • 메시지를 보내기 전에 콘텐츠 스크립트가 삽입되었는지 확인하세요.
  • 액티브 콘텐츠 스크립트를 확인하고 필요한 경우 삽입하는 기능을 구현하세요.

다음 단계에 따라 분리된 콘텐츠 스크립트를 제거하고 확장 프로그램 구성 요소 간의 통신을 복원할 수 있습니다.

위 내용은 Chrome 확장 프로그램에서 고아 콘텐츠 스크립트로 인해 발생하는 \'runtime.lastError\' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.