Addon SDK を使用して Firefox 拡張機能を開発しており、同じパッケージに保存されているデータを別のファイル "data.json" としてロードする必要があります。これは、スクリプトの src タグを使用して「panel.html」に含まれる「loader.js」などのページ スクリプトからロードする必要があります。
構造は次のようになります。
+data
panel.html
panel.js
loader.js
data.json
...
+lib
main.js
...
panel.html には次のものがあります。
<script type="text/javascript" src="loader.js"></script>
最初は、データを単純に「data.js」として js ファイルに保存し、スクリプト src タグを使用して「panel.html」からインクルードしましたが、問題なく動作しました。しかし、アドオンを Mozilla Addon サイトに提出したとき、これは修正すべき問題の 1 つとして対処され、より安全にするために JSON ファイルなどの非実行形式を使用する必要があると述べられました。
「loader.js」が「data.json」へのAJAXリクエストを行うことが許可されていないようです。(JQuery $.ajax() 呼び出しを使用しても成功せず、エラー コード 0 が返されます) したがって、私が考えている解決策は、SDK の request() 関数を使用して「main.js」から「data.json」をロードすることです。どういうわけかそれをページスクリプトである「loader.js」に渡します。しかし、私が理解している限り、データは最初にコンテンツ スクリプトに送信され、次にそこからページ スクリプトに送信される必要があるため、これは複雑に思えます。これは、ページ スクリプトの読み込み時に発生する必要があります。もっと実用的な解決策がないのか、パッケージ内のローカルJSONデータをローカルページスクリプトにロードするだけで本当に複雑なのか分からないので、私は混乱していますか?