내 Firefox 부가 기능은 콘텐츠 스크립트 (page-mod)에서 Fancybox (유형 : "iframe")를 엽니 다. Fancybox에서 내 자신의 서버에있는 내 자신의 HTML 페이지 (my_fancybox_stuff.html)를 보여줍니다. my_fancybox_stuff.js
(my_fancybox_stuff.html의 자바 스크립트)에서 이제콘텐츠 스크립트의 IFrame. main.js와 통신하는 방법?
는, I는 현재 부가 기능의 main.js
에게 메시지를 보낼 수 있습니까? 아니면 Fancybox를 연 콘텐트 스크립트에요?
Fancybox를 연 콘텐츠 스크립트에서 액세스 할 수 있으므로 my_fancybox_stuff.js에서 전역 '자체'개체에 액세스 할 수 있기를 기대하고있었습니다.
이 작업을 수행하기위한 잠재적 인 해결 방법에 대해 듣고 싶습니다.
크롬 확장 프로그램에서 이는 간단합니다. my_fancybox_stuff.js
에서 chrome.extension.sendMessage()
으로 전화하면 작동합니다.
미리 감사드립니다.
편집 : 내 사례를 명확히하기 위해 일부 코드를 추가하십시오. 읽기에 사람들의 시간을 절약 할 수 있도록 코드를 간소화했습니다. 이것은 안녕하세요 세상처럼 간단합니다. (페이지 모드 주입)을 contents_scipt.js에서
내가 전화 : my_fancybox_stuff.js에서
<!doctype html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery.js"></script>
<script src="js/my_fancybox_stuff.js"></script>
</head>
<body>
<div id="my-wrapper">
<div id="my-form-div">
<form id="my-form" action="#">
<div>
<div><p>Name</p></div>
<div><input id="fullname" type="text" name="fullname" value=""></div>
</div>
<div>
<div><p><a id="my-button" href="#">Press this</a></p></div>
</div>
</form>
</div>
</div>
</body>
, 버튼 (:
$.fancybox.open(
{
// Some irrelevant Fancybox options hidden for clarity
href:"http://www.mysite.com/my_fancybox_stuff.html
type: 'iframe'
}
);
my_fancybox_stuff.html는 다음과 같이 보일 것입니다 "my_button")을 누르면 입력 필드 ("fullname")의 값을 포함하는 메시지를 보내고 content_script.js에서 수신하려고합니다.
감사합니다. Brock! 나는 실제로 질문을 보내기 전에 window.postMessage에 대해 읽고 있었다. 그리고 나는 대답을 읽고 계속 읽었다. 나는 모든 웹 물건들과 같은 거짓말이다. 나는 나의 경우에 그것을 구현하는 방법과 모두 혼란 스럽다. 내 window.postMessage (페이지 - mod 시작된) 콘텐츠 스크립트에서 메시지를 듣고 싶을 때 무엇이 '창'이어야합니까? 어쩌면 내 질문에 일부 코드를 추가해야합니다. – mikko76
예, 코드를 가져 오는 코드를 제공하십시오. –
오른쪽. 나는이 문제를 편집하고 나의 사례를 명확히하기 위해 간단한 코드를 추가했다. – mikko76