>  기사  >  웹 프론트엔드  >  Chrome 확장 프로그램의 콘텐츠 스크립트에서 전역 변수에 액세스하는 방법은 무엇입니까?

Chrome 확장 프로그램의 콘텐츠 스크립트에서 전역 변수에 액세스하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 05:45:02568검색

How to Access Global Variables from Content Scripts in Chrome Extensions?

Chrome 확장 프로그램의 콘텐츠 스크립트에서 전역 변수에 액세스

jQuery.load를 통해 현재 Gmail 메시지에서 GLOBALS 변수를 검색하려는 시도에도 불구하고( ) 콘텐츠 스크립트에서는 격리로 인해 오류가 지속됩니다.

해결책: 스크립트 삽입 및 이벤트 리스너

페이지 창의 전역 속성에 액세스하려면 다음을 활용하는 것이 좋습니다.

  1. 스크립트 삽입: 페이지 컨텍스트에 새 스크립트 요소 삽입:
var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);

스크립트가 로드되면 정리를 위해 제거하세요.

s.onload = function() {
    s.remove();
};
  1. 이벤트 리스너: 이벤트 리스너를 사용하여 데이터 전송:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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