0

パネルスクリプトとページスクリプトでグローバル変数を同じにすることはできますか?

ポインターを使用するようなハックや、パネル スクリプトやページ スクリプトで簡単にアクセスできるストレージの場所などです。ポート通信を使用して投稿メッセージで変数を送信したくありません。これは、この変数をマイル秒間隔で更新するタイマー関数で使用するためであり、システム ポートで非常に多くのメッセージを投稿すると Web ブラウザーが過負荷になるためです。パネルスクリプトやページスクリプトでアクセスしやすい場所から変数を読めるようになれば良いと思います。Firefox アドオン ビルダーは初めてですが、アドオンでこれを実現するにはどうすればよいですか?

ここに、ページ スクリプトで保存された値を読み取るパネル スクリプトを添付します。

var panel = require("panel").Panel({
          width: 100,
          height: 100,
          contentScriptFile: data.url("panel_script.js")
    });

ここでは、ページ コンテンツから値を保存するページ スクリプトを添付し、パネル スクリプトがそれを読み取ります。

var pageMod = require("page-mod");
pageMod.PageMod({
    include: "*",
    contentScriptFile: self.data.url("page_script.js"),
    contentScriptWhen: 'ready'
  });

アップデート:

ページで再生されているプレーヤーの位置を読み取りたいのですが、マイル秒単位で非常に正確である必要があり、アドオン パネル スクリプトでタイマーを使用してプレーヤーの位置の値を取得したいと考えています。ポート リクエストを使用すると、パネル スクリプトから簡単に読み取れる場所に値を保存できる場合よりも多くのリソースを必要とする非常に多くのリクエストで Web ブラウザが過負荷になります。

4

1 に答える 1

2

できません。これは、主にセキュリティとパフォーマンス上の理由から意図的に行われています。コンテンツ スクリプトは、main.js のメイン アドオン コードから必ず分離されます。これにより、Web コンテンツが main.js にコードを挿入して実行し、すべての Firefox API にアクセスできるようになる可能性があります。ファイル システム、tcp ソケットでリッスンし、他の Web ページを変更します。

アドオンが実際に何をするかについてより多くの情報を提供すると、人々は問題に対するより良いアプローチを提案できるかもしれません.

于 2013-03-26T18:14:13.690 に答える