Chrome 확장 프로그램을 만들면 웹페이지 동작을 수정할 수 있는 기능이 제공됩니다. 그러한 요구 사항 중 하나는 Gmail 메시지의 GLOBALS 변수와 같은 페이지에서 전역 변수를 검색하는 것입니다.
안타깝게도 콘텐츠 스크립트는 격리된 환경에서 실행되므로 페이지의 내용에 직접 액세스할 수 없습니다. GLOBALS와 같은 창 속성. jQuery의 .load() 함수가 이를 검색하지 못해 ReferenceErrors가 발생합니다. 이는 개발자 도구의 콘솔을 통해 GLOBALS에 액세스할 수 있음에도 불구하고 발생합니다.
이러한 통신 격차를 해소하려면 다음 두 가지 방법 중 하나를 사용할 수 있습니다.
1. 스크립트 삽입:
페이지 컨텍스트에 새 스크립트 요소를 삽입합니다. 이 스크립트는 원하는 데이터를 검색하여 콘텐츠 스크립트에 다시 전달할 수 있습니다.
2. 이벤트 리스너:
이벤트 리스너를 사용하여 페이지와 콘텐츠 스크립트 간에 데이터를 전달합니다. 콘텐츠 스크립트는 원하는 정보가 포함된 페이지 스크립트에 의해 실행된 사용자 정의 이벤트를 수신할 수 있습니다.
콘텐츠 스크립트(run_at: "document_end"):
<code class="js">var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head || document.documentElement).appendChild(s); s.onload = function() { s.remove(); };</code>
Script.js(삽입된 스크립트):
<code class="js">setTimeout(function() { document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS })); }, 0);</code>
위 내용은 Chrome 확장 프로그램을 사용하여 Gmail 메시지의 전역 변수에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!