2011-12-06 4 views
0

クローム拡張機能を開発中です。私は、コンテキストメニューがクリックされたときに、「Inspect pop-up」選択でポップアップページを開くと、バックグラウンドページからポップアップ拡張にメッセージを渡すことができます。このように開いているので。アクティブでない場合でも、クロム拡張メッセージをポップアップメッセージに転送します。

ただし、ポップアップページが開いていないときにコンテキストメニューをクリックすると、メッセージは受信されません。

ポップアップを自動的に開くか、開いたままにするか、メッセージがアクティブでなくてもメッセージを送信するよう提案しますか?

答えて

0

ポップアップウィンドウを実際に開く方法はありません。ポップアップウィンドウは、ポップアップが開いているときにのみ有効です。これは、ポップアップウィンドウが閉じられたときにメッセージを送信できないためです。

メッセージをバックグラウンドページにキューイングし、次にポップアップウィンドウが開いたときにメッセージを取得することができます。または、機能に応じて、HTML5 desktop notificationsを代わりに使用して調べることもできます。

+0

私はあなたの最初の提案に従うべきです。どのようにメッセージをキューに入れることができますか? – talhaocakci

+0

しかし、あなたが欲しいです。メモリやlocalStorageにメッセージの配列を作成することができます。 – abraham

0

ポップアップに何かを送信するのではなく、ポップアップが開くときに必要な情報を要求する必要があります。

ポップアップは単なるHTMLページなので、開かれるまで存在しません。

基本的には、前述のアブラハムのように、localStorageまたはchrome.storageを使用して、バックグラウンドで情報を保存します。ポップアップが開くと、chrome.extension.getBackgroundPage()関数を使用して、バックグラウンドへの参照を取得し、格納された情報へのアクセスを提供する必要があります。

localStorageまたはchrome.storageを使用している場合は、エクステンション全体でストレージが共有されるため、バックグラウンドを使わずに直接アクセスできます。

関連する問題