通过脚本标记加载JSON文件

时间:2014-02-21 22:09:53

标签: javascript json

我写了一个小的I18n插件,通过json接受不同的语言。为了使用户尽可能简单,我希望他们能够直接将页面中的json包与实际脚本一起打包:

<script id="pop-language_es" type="application/json" src='languages/es.json'></script>
<script src='pop.js'></script>

为了让这个插件尽可能精简,我想避免像Jquery这样的外部依赖。我可以使用纯js:

检索脚本标记
var json = document.getElementById("pop-language_es");

问题是,这只是标签,而不是实际的json。有没有办法用json.content

之类的东西检索内容

有一个类似的问题here,其中有几个人建议使用Ajax。这肯定会在这种情况下起作用,但这不会导致客户端下载json两次吗? (首先在页面加载期间,然后再在Ajax调用期间。)如果是这样,我希望有更好的选择,因为这些json文件可能会变得非常大。

2 个答案:

答案 0 :(得分:4)

您可以做的是在外部文件中设置一个全局变量:

window.myJSON = { ... };

然后您的其他代码可以通过window.myJSON访问该数据。

我不确定浏览器如何解析.json个文件,因此您可能需要将扩展​​名更改为.js

答案 1 :(得分:0)

一旦包含了javascript文件,就可以在主文件中访问它的内容(变量,方法......)。 document.getElementById与其上的内容无关,它只查找DOM元素本身,而不是文件。