this simple exampleによると どのコンテンツスクリプト(どのタブ)が実際に背景(行10)にメッセージを送信しているかを知る方法は?タブIDの例。背景-script.jsためexampleでコンテンツスクリプトがFirefoxアドオンの背景と通信する方法を教えてください。
答えて
、portFromCS
は、送信者のプロパティを持っていますhttps://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/Port
送信者はまた、あなたができるtab
特にtab.id
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/MessageSender
/* background-script.js */
browser.runtime.onConnect.addListener(port => {
port.onMessage.addListener((msg) => {
console.log("bg received", msg, "from tab", port.sender.tab.id);
});
});
を含むオブジェクトであること"one-off"またはコネクションレスメッセージを browser.runtime.onMessage
ハンドラのシグネチャは(msg, sender, reply)
で、送信者は上記と同じMessageSenderオブジェクトです。
はい、ありがとうございます。私は 'browser.runtime.onMessage'で' sender.tab.id'を使うことができます。メッセージの1つはより多くの可能性を提供します。しかし、メッセージがバックグラウンドから送信されたときにバックグラウンドで受信されるため、メッセージの内容を確認してコンテンツスクリプトからのメッセージであることを確認する必要があるため注意が必要です。 – hayj
@hayj、同じスクリプトから送信したメッセージのイベントを受信するのに問題があるFirefoxのどのバージョンを使用していますか?私が知っている限り、これはFirefox 51の時点で解決されたバグです。Firefox 51以降で表示されますか? – Makyen
私は51.0.1(64ビット)です。それが私の悪いのではないかどうかをチェックさせてください。 – hayj
- 1. Reactでステートレスコンポーネントと通信する方法を教えてください。
- 2. Firefox XULアドオンがウェブサイトがキー押しイベントを盗むのを防ぐ方法を教えてください。
- 3. 電子メール:ブラウザウィンドウとの通信方法を教えてください。
- 4. マットダイアログが実装されているコンポーネントとマットダイアログコンポーネントとの通信方法を教えてください。
- 5. 2つのAIR IOSアプリケーション間の通信方法を教えてください。
- 6. 通知カテゴリの登録方法を教えてください。
- 7. プレーヤーの高さをスクロールして背景を統一する方法を教えてください。
- 8. いくつかのアプリがバックグラウンドモードなしで通知を送信する方法を教えてください。
- 9. ページファンの国別配信方法を教えてください。
- 10. Chrome拡張:背景とコンテンツスクリプト間の通信
- 11. divのコンテンツをモバイルデバイスの背景イメージの下に表示する方法を教えてください。
- 12. ノードpgモジュールがWindows postgresqlサーバーと通信する方法を教えてください。
- 13. データグリッド行の背景を特定の色にバインドする方法を教えてください。
- 14. ユーザーのアプリケーションの背景色をイオンで変更する方法を教えてください。
- 15. PHPがAjaxにリクエストを送信する方法を教えてください。
- 16. 内部クラスがメッセージを送信する方法を教えてください。
- 17. ユーザーがカスタムメールテンプレートをRailsで送信する方法を教えてください。
- 18. バックエンドで何かが処理されているときに「アイコンをロードする」と背景を薄暗くする方法を教えてください。
- 19. Reduxを使用して、ルートのReactコンポーネントと他のアプリケーション間の通信方法を教えてください。
- 20. Firefox OS 1.4アプリの認証方法を教えてください。
- 21. 2つの並行プロセスが通信する方法を教えてください。
- 22. State Machine Completionについての通知方法を教えてください。
- 23. 通知バーをプログラムでバックアップする方法を教えてください。
- 24. アプリがプッシュ通知UWPを送信する方法を教えてください。
- 25. seleniumをこのhideNameInputに送信する方法を教えてください。
- 26. ソースとターゲットの検証方法を教えてください。
- 27. Output()とInput()デコレータのインターフェイス方法を教えてください。
- 28. dependenciesとrequirements.txtの分離方法を教えてください。
- 29. ポイントから消える方法を教えてください。
- 30. メッセージを確実に配信する方法を教えてください。
私の解決方法は、バックグラウンドで 'browser.tabs.onCreated'を使うことです。すぐにタブIDをコンテンツスクリプトに送りコンテンツスクリプトに保存します。しかし、それは醜いです。 – hayj