私の Firefox アドオンは、コンテンツ スクリプト (page-mod) から Fancybox (タイプ: "iframe") を開きます。Fancybox で、自分のサーバーにある自分の HTML ページ ( my_fancybox_stuff.html ) を表示します。
my_fancybox_stuff.js
( my_fancybox_stuff.htmlの javascript )から、アドオンの にメッセージを送信できますmain.js
か? それとも、Fancybox を開いたコンテンツ スクリプトに?
Fancybox を開いたコンテンツ スクリプトからアクセスできるため、my_fancybox_stuff.js からグローバルな「self」オブジェクトにアクセスできることを望んでいました。
これを実現するための潜在的な回避策について知りたいです。
Chrome 拡張機能では、これは簡単です。my_fancybox_stuff.js
私は呼び出すことができ、それchrome.extension.sendMessage()
は機能します。
前もって感謝します!
編集:私のケースを明確にするためにいくつかのコードを追加します。コードを単純化して、コードを読む時間を節約しました。これは、Hello World のように簡単です。
contents_scipt.js (page-mod で注入) から、次のように呼び出します。
$.fancybox.open(
{
// Some irrelevant Fancybox options hidden for clarity
href:"http://www.mysite.com/my_fancybox_stuff.html
type: 'iframe'
}
);
my_fancybox_stuff.html は次のようになります。
<!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>
my_fancybox_stuff.js で、ボタン ("my_button") が押されたときに、入力フィールド ("fullname") の値を含むメッセージを送信し、それを content_script.js でリッスンしたいと考えています。