> 웹 프론트엔드 > JS 튜토리얼 > Chrome 확장 프로그램을 사용하여 Gmail 메시지의 전역 변수에 어떻게 액세스할 수 있나요?

Chrome 확장 프로그램을 사용하여 Gmail 메시지의 전역 변수에 어떻게 액세스할 수 있나요?

DDD
풀어 주다: 2024-10-26 06:56:02
원래의
637명이 탐색했습니다.

How Can I Access Global Variables in Gmail Messages Using a Chrome Extension?

Chrome 확장 프로그램을 사용하여 Gmail 메시지의 전역 변수에 액세스

소개

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>
로그인 후 복사

고려사항

  • "script.js"가 다음과 같은지 확인하세요. 매니페스트 파일의 web_accessible_resources 섹션에 추가되었습니다.
  • 삽입된 스크립트에서 사용할 수 없는 추가 기능에 액세스할 수 있으므로 콘텐츠 스크립트는 대부분의 로직을 처리해야 합니다.

위 내용은 Chrome 확장 프로그램을 사용하여 Gmail 메시지의 전역 변수에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿