我想使用javascript将json文件保存到我的应用程序目录中。怎么做?当您单击下载按钮并显示我的json文件的内容时,我的代码只会打开一个新选项卡。我被允许仅使用客户端脚本。我试过这段代码但没有用。
不工作代码:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("location", true);
s.WriteLine(json);
s.Close();
这是我的代码..
HTML CODE:
<!doctype html>
<html manifest="survey.manifest">
<head>
<title>Offline Survey Application</title>
<link rel="stylesheet" href="styles/survey.css" type="text/css">
<script type="text/javascript" src="scripts/survey.js"></script>
</head>
<body>
</body>
</html>
Javascript代码
window.onload=function myFunction()
{
var btn=document.createElement("BUTTON");
btn.setAttribute('id', 'dButton');
btn.setAttribute('value', 'download');
var t=document.createTextNode("DOWNLOAD");
btn.appendChild(t);
document.body.appendChild(btn);
btn.onclick=function clickedFunction(){
var url = "http://localhost/JSONFiles/survey.json";
window.open(url, 'download');
}
};
提前感谢朋友们! :)
答案 0 :(得分:0)
你想做的事情会杀死很多小猫。
出于安全原因,网页不能随心所欲地使用activeX对象,也不能以任何方式访问文件系统等本地计算机资源,除非标准允许(基本上是cookie和本地存储文件)。
这将允许任何俄罗斯黑客和他的狂犬病狗对全球各地的计算机造成严重破坏。
但是,如果您的json文件不是太庞大而且您不希望从其他应用程序重用它们,则可以尝试使用本地存储。
如果你计划下载json文件,只需指向它们(即在页面的某个位置放置任何.json文件的链接),当用户点击这样的链接时,浏览器会弹出一个保存请求者让用户可以自由地将文件保存在他/她选择的位置。
答案 1 :(得分:0)
如果你要做的就是让你的服务器上的文件自动下载而不是在浏览器中查看,你只需要将文件发送到客户端的Content-Disposition头设置为“attachment” ”。最简单的方法是修改用于为.json
类型的文件添加规则的服务器的配置文件。不过,确切的方法会因您的服务器而异。