3

私はしばらくの間試してきましたが、これを機能させることができません。基本的に、拡張機能が有効になっている場合は、永続的なページが必要です (ブラウザアクションアイコンがクリックされたかどうかに関係なく、ソケット接続を保持します)。

背景ページはこのように機能します。ここで、この背景ページをポップアップ ページに表示するようにします (iframe またはその他の代替手段を使用して、背景ページの別のインスタンスにならないようにします。

「chrome-extension://invalid/ の Web ページが一時的にダウンしているか、新しい Web アドレスに完全に移動した可能性があります。」

私が試すことができる方向についてのアイデアはありますか?

4

2 に答える 2

2

background.html実際の背景ページは非表示であり、表示することはできません(開発者モードで、のリンクをクリックすると、背景ページの開発ツールを開くことができchrome://extensions/ます)。

ポップアップから、を使用して、バックグラウンドページからメソッドとプロパティに直接アクセスできますchrome.extension.getBackgroundPage()。これは、拡張機能のポップアップウィンドウの(セッション)永続的な状態を維持するために使用できます。

フレーム/タブに背景ページを読み込もうとすると、ページの新しいインスタンスが表示されます。ただし、これはバックグラウンドページではありません。拡張機能内では通常のHTMLファイルとして扱われます。

于 2012-04-12T14:32:12.900 に答える
1

バックグラウンドページのURLが必要な場合は、使用をお勧めしますchrome.extension.getURL('background.html')

しかし、この方法はうまくいくとは思いますが、あなたがしていることにはお勧めしません。代わりに、単純なメッセージ パッシングを使用することをお勧めします。これにより、ポップアップ/ブラウザ アクションは実際に UI の html を保持し、バックグラウンド ページからライブ Web ソケットを要求するメッセージをバックグラウンド ページに送信します。

これらはメッセージ パッシングに関するドキュメントです: http://code.google.com/chrome/extensions/messaging.html

楽しんで頑張ってください!全く問題ありませんが、質問があればお知らせください

于 2012-04-12T07:24:33.400 に答える