我一直在使用Addon SDK開發Firefox擴展,並且需要加載一些存儲在同一個包中的數據作爲單獨的文件:「data以.json」。它需要使用腳本src標籤從頁面腳本加載,即「panel.html」中包含的「loader.js」。在Firefox Addon頁面腳本中加載JSON文件,包中的所有內容
的結構是這樣的:
+data
panel.html
panel.js
loader.js
data.json
...
+lib
main.js
...
panel.html具有:
<script type="text/javascript" src="loader.js"></script>
最初我們存儲的數據簡單地成js文件爲 「data.js」 和包括來自「 panel.html「使用腳本src標籤,它工作沒有任何問題。但是,當我們將附加組件提交給Mozilla Addon站點時,這被解決爲需要解決的問題之一,並表示我們需要使用非可執行格式,例如JSON文件以使其更安全。
現在問題看起來像「loader.js」不允許向「data.json」發出AJAX請求。 (使用JQuery $ .ajax()調用返回沒有成功,給出錯誤代碼0)所以我一直在想的解決方案是使用SDK的request()函數從「main.js」加載「data.json」並以某種方式將它傳遞給頁面腳本「loader.js」。但是,這似乎很複雜,因爲據我所知,數據需要首先發送到內容腳本,然後從那裏發送到頁面腳本。這需要在頁面腳本加載時發生!我對此感到困惑,因爲我不確定是否缺少一個更實用的解決方案,或者它真的是一些複雜的工作,只需將本地JSON數據加載到本地頁面腳本中即可?