我一直在使用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数据加载到本地页面脚本中即可?