/* Load a JavaScript or JSON file to use its data */
function loadJsFile(filename, dataIsLoaded){
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
fileref.onload = dataIsLoaded;
if (typeof fileref!="undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref);
}
}
/* The callback that is invoked when the file is loaded */
function dataIsLoaded(){
console.log("Your data is ready to use");
}
当JSON文件与网站位于同一目录中时的使用方法:
var jsonFile= "myData.json";
loadJsFile(jsonFile, dataIsLoaded);
我在IE10和Firefox 22中成功测试过,但在Chrome上无法工作。
如果您的应用程序启动Chrome浏览器,则可以在启动命令中包含--allow-file-access-from-files标志。
myData.json
文件中的数据在 JavaScript 中是全局可访问的。假设在您的 JSON 文件中有一个var externalInfo
。外部程序或脚本会定期更新该变量。因此,在您的 JavaScript 中,您编写了一个方法,每五秒钟调用一次loadJsFile("myData.json")
。最后,您在dataIsLoaded
中使用更新后的externalInfo
。 - Matthias Braun