0

Firefox用の簡単な拡張機能を作成したいと思います。協力しているFirefox WebExtensions間で情報を共有する方法

  1. ユーザーはまだ

をホバリングしながら

  • が延長

  • 表示、それを内部のファイルから、その単語の辞書の定義を引いて任意のページにいくつかの単語の上に置きました私はFirefoxのアドオンとWebExtensionsの新機能を持っているので、私が思っていることは次のとおりです。

    拡張子で使用されるファイルを、毎回オンラインWebサイトを参照する代わりに、ローカルにします。

    任意のユーザーが辞書全体のさまざまな部分に興味を持っている可能性があります(異なる言語のエントリが含まれているため、ユーザーは1または2言語のみが必要です)。ベース。

    類似のアドオンを見たことがあるのは、Firefox 5より前のものです。アドオンとして利用できる辞書ファイルとは別に、検索と表示のアドオンを提供していますマスターアドオンがインストールされている場合にのみ、実際に作業を行います。

    しかし、これらの例はWebExtensions API用に更新されているようではなく、最新のバージョンのFirefoxをサポートしていません。 これまでのWeb拡張機能間の通信方法も見つけられませんでした。

    私の説明したことを達成するために、2つ以上の協調的な拡張子の間で情報を共有するにはどうすればよいですか。 実際、これが私が気付いていない何らかの理由で本当にばかげているのであれば、には、メインの内線番号とは別に辞書ファイルを扱うことができる合理的な選択肢を指摘してください。

    おそらく関連する質問が見つかりました: Communicating between 2 Firefox Add-Ons (Cross-Extension Communication) これは2010年のものですが、これまでのところ私が知る限りではありません。

    Mozilla Addon Development - Communicating between windows with different domains 同様の状況でも、ローカルソースではなくオンラインソースから定義を取得したいと考えています。

    私がMozillaブラウザ拡張Webサイトで見つけた最も近いことは、アドオンといくつかのネイティブアプリケーション間の通信です。

  • 答えて

    1

    アドオン間の通信は、runtime.sendMessage(),runtime.connect(),runtime.onMessageおよびruntime.onConnectの機能の通常の部分です。

    両方 runtime.sendMessage()

    runtime.connect()は、それらのオプションの最初のパラメータとして有する:

    extensionId

    runtime.sendMessage()の場合、これは:

    string。メッセージを送信する内線番号。別の内線番号にメッセージを送信するには、これを含めます。対象の受信者がmanifest.jsonのapplicationsキーを使用して明示的にIDを設定している場合、extensionIdはその値を持つ必要があります。それ以外の場合は、対象の受信者用に生成されたIDを持つ必要があります。

    extensionIdを省略すると、メッセージは自分の内線番号に送信されます。

    runtime.connect()の場合、これは次のとおりです。

    string。接続先の内線番号です。ターゲットがmanifest.json内のapplicationsキーを使用して明示的にIDを設定している場合は、extensionIdにその値を設定する必要があります。それ以外の場合は、ターゲットに対して生成されたIDを持つ必要があります。

    両方runtime.onMessage、及びruntime.onConnectメッセージで、またはポートの一部としてのいずれかで、senderプロパティまたはパラメータを提供します。

    id

    • string:このパラメータ/特性であるidプロパティを含むruntime.MessageSenderあります。メッセージが内線番号によって送信された場合、メッセージを送信した内線番号。送信者がmanifest.jsonのapplicationsキーを使用して明示的にIDを設定した場合は、idにこの値が設定されます。それ以外の場合は、送信者に対して生成されたIDを持ちます。

      バージョン54より前のFirefoxでは、この値が拡張機能の内部ID(拡張機能のURLに表示されるUUID)であることに注意してください。

    +0

    ありがとう、私は完全で検索するよりあいまいな領域の賛成でこれを見落とし。 – vruvre

    関連する問題