我写了一个小的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文件可能会变得非常大。
答案 0 :(得分:4)
您可以做的是在外部文件中设置一个全局变量:
window.myJSON = { ... };
然后您的其他代码可以通过window.myJSON
访问该数据。
我不确定浏览器如何解析.json
个文件,因此您可能需要将扩展名更改为.js
。
答案 1 :(得分:0)
一旦包含了javascript文件,就可以在主文件中访问它的内容(变量,方法......)。
document.getElementById
与其上的内容无关,它只查找DOM元素本身,而不是文件。