Chrome 확장 프로그램의 콘텐츠 스크립트에서 전역 변수에 액세스
jQuery.load를 통해 현재 Gmail 메시지에서 GLOBALS 변수를 검색하려는 시도에도 불구하고( ) 콘텐츠 스크립트에서는 격리로 인해 오류가 지속됩니다.
해결책: 스크립트 삽입 및 이벤트 리스너
페이지 창의 전역 속성에 액세스하려면 다음을 활용하는 것이 좋습니다.
var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head||document.documentElement).appendChild(s);
스크립트가 로드되면 정리를 위해 제거하세요.
s.onload = function() { s.remove(); };
document.addEventListener('RW759_connectExtension', function(e) { // e.detail contains transferred data, e.g., GLOBALS });
예제 코드:
contentscript.js(document_end에서 실행):
// Inject script var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head||document.documentElement).appendChild(s); // Event listener document.addEventListener('RW759_connectExtension', function(e) { alert(e.detail); // Access GLOBALS });
script.js(매니페스트의 "run_at": "document_end"):
setTimeout(function() { document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS // Send data })); }, 0);
매니페스트 파일의 web_accessible_resources 섹션에 "script.js"를 추가하는 것을 잊지 마세요.
모범 사례:
삽입된 로직 최소화 스크립트를 작성하고 콘텐츠 스크립트에서 대부분의 처리를 처리하여 확장 안정성을 보장하고 chrome.* API와 같은 추가 기능에 대한 액세스를 보장합니다.
위 내용은 Chrome 확장 프로그램의 콘텐츠 스크립트에서 전역 변수에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!