如何用Javascript加载本地文件
How to load a local file in Javascript
我有一个名为dump.json
的文件,格式为:
[{"key": "XYZ", "values": [[1424642400000, 28], [1424728800000, 80], [1424815200000, 92]]}]
而且,我想做的是以某种方式在JavaScript中以变量名histcatexplong
:加载它
var histcatexplong = [{"key": "XYZ", "values": [[1424642400000, 28], [1424728800000, 80], [1424815200000, 92]]}];
我该怎么做?
正如我在评论中所说,这可以在线和离线使用(不需要Web服务器),而XMLHTTPRequest可以。请注意,Filereader仅在现代浏览器中受支持。http://caniuse.com/#feat=filereader
function readSingleFile(evt) {
var f = evt.target.files[0];
if (f) {
var r = new FileReader();
r.onload = function(e) {
var contents = e.target.result;
document.querySelector("div").innerHTML= "Got the file.n"
+"name: " + f.name + "n"
+"type: " + f.type + "n"
+"size: " + f.size + " bytesn"
+ "starts with: " + contents
//store it as JSON
histcatexplong = JSON.parse(contents);
}
r.readAsText(f);
} else {
alert("Failed to load file");
}
}
document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
<input type="file" id="fileinput" />
<div></div>
作为我意思的一个例子。
我只需向.json
文件发送一个不带参数的GET请求。请注意,以下代码示例在IE5/IE6中不起作用。请查看此答案以获得更跨浏览器的解决方案,并且由于同源策略,必须在服务器(例如localhost)上运行。一个粗略的想法:
var histcatexplong;
var xhReq = new XMLHttpRequest();
xhReq.open("GET", "dump.json", true);
xhReq.send(null);
xhReq.onreadystatechange=function()
{
if (xhReq.readyState==4 && xhReq.status==200)
histcatexplong=JSON.parse(xhReq.responseText);
}
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Ajax文件加载和<输入>文件加载
- 使用Bootstrap将JSON文件加载到表中
- 将组合JSON文件加载到谷歌地图
- 将文本文件加载到javascript中
- jQuery Mobile样式从另一个文件加载内容
- 使用JavaScript将压缩文本文件加载到字符串中
- 数组在手动写入时有效,但从文本文件加载时无效
- 如何在打印前等待javascript文件加载twitter,并在打印后关闭选项卡
- 从文本文件加载jsondata时出现空白页
- AngularJS:如何使用ng-include将javascript文件加载到部分中
- 使用jquery将html文件加载到html中,用于离线/本地项目
- 从另一个grunt文件加载grunt任务
- 将php文件加载到弹出窗口中,并将php变量发布到该弹出窗口中(使用onclick)
- 如何使用node.js将不同的json文件加载到不同的json对象中
- 将变量从服务器上的外部文件加载到 HTML 文档中
- 节点 - 将 JSON 文件加载到代码中
- 如何使用 JavaScript/jQuery 将 XML 文件加载到 JSP/HTML 页面
- NodeJS和ExpressJS-Javascript文件加载,但CSS文件不加载;t
- D3.js:通过Force Layout从JSON文件加载多个网络