0

로드되는 즉시 특정 웹 페이지에 iframe을 삽입하는 크롬 확장 프로그램을 개발 중입니다. iframe은 localhost에 호스팅 된 양식 (form.php)을로드합니다. 양식에 입력 된 모든 정보는 로컬 호스트의 script.js에 의해 처리됩니다. PHP 파일이 있습니다Chrome 확장 프로그램 : 서버의 JavaScript를 통해 백그라운드 페이지로 요청 보내기

<script src="script.js" type="text/javascript"></script> 

는이 PHP 파일에 버튼을 제출 있습니다. 클릭했을 때 나는 메시지와 같은 확장의 배경 페이지에 일부 데이터 전달하려는 :

chrome.extension.sendRequest({'name':'email', value:email}); 

을하지만 난라는 오류를 얻을 : 버튼을 제출하면 내가 원하는 것은,

Uncaught TypeError: Cannot call method 'sendRequest' of undefined

입니다

을 클릭하면 처리 된 모든 데이터가 Chrome 확장 배경 페이지로 전송됩니다.

저에게 도움이 될 수있는 방법을 제안 해주십시오.

답변

0

맞다면 Iframe에서 크롬 확장 배경 페이지로 메시지를 보내려합니다. 이 작업을 수행하는

한 가지 방법은 데이터가 준비되면, 당신은

parent.postMessage

를 호출 할 수있는 웹 페이지에 콘텐츠 스크립트를 삽입하고 메시지

Iframe에에

window.addEventListener('message', ....)

, 수신하는 것입니다

부모의 콘텐츠 스크립트에 메시지를 보냅니다. 콘텐츠 스크립트는 매니페스트 확장에

all_frames: true

를 설정하여 iframe이 자체의 내용 스크립트를 삽입하는

chrome.extension.sendRequest

또 다른 방법이다 사용 BG하는 메시지를 전달할 수 있습니다.

+0

Udbhav에게 감사드립니다. 그것은 매력처럼 작동했습니다 :) –

+0

Welcome. 그것이 당신을 위해 일했다면 당신은 대답을 투표 할 수 있습니다. – Udbhav

관련 문제