Pao*_*ino 74
不,JavaScript没有写文件的权限,因为这至少可以说是一个巨大的安全风险.但是,如果你想在服务器端获取/存储信息,你当然可以对PHP/ASP/Python /等进行Ajax调用.然后可以在服务器中获取/存储数据的脚本.如果您的意思是在客户端计算机上存储数据,那么仅使用JavaScript是不可能的.我怀疑Flash/Java可能会,但我不确定.
如果您只是尝试在特定用户的不可靠时间段内存储少量信息,我认为您需要Web Storage API或cookie.不过,我不确定你的问题是什么.
Eri*_*ski 11
execCommand('SaveAs', false, filename);功能编辑:不再有效.此Javascript函数曾用于所有浏览器,但现在仅在IE上,由于浏览器安全性的考虑.它向通过浏览器运行此功能的用户提供了"另存为"对话框,用户按OK,文件在服务器端通过javascript保存.
现在这个代码是一个罕见的古董零日收藏品.
// content is the data (a string) you'll write to file.
// filename is a string filename to write to on server side.
// This function uses iFrame as a buffer, it fills it up with your content
// and prompts the user to save it out.
function save_content_to_file(content, filename){
var dlg = false;
with(document){
ir=createElement('iframe');
ir.id='ifr';
ir.location='about.blank';
ir.style.display='none';
body.appendChild(ir);
with(getElementById('ifr').contentWindow.document){
open("text/plain", "replace");
charset = "utf-8";
write(content);
close();
document.charset = "utf-8";
dlg = execCommand('SaveAs', false, filename);
}
body.removeChild(ir);
}
return dlg;
}
Run Code Online (Sandbox Code Playgroud)
像这样调用函数:
msg = "I am the president of tautology club.";
save_content_to_file(msg, "C:\\test");
Run Code Online (Sandbox Code Playgroud)
您需要通过Web编程语言(如PHP或ASP.net)处理文件访问.
要设置它,你会:
创建一个处理文件读写的脚本.这应该对浏览器可见.
将jQuery ajax请求发送到该脚本,该脚本可以写入数据或读取数据.您需要通过请求参数传递所有读/写信息.您可以在jQuery ajax文档中了解更多相关信息.
确保您清理正在存储的任何数据,因为这可能存在安全风险.但是,这实际上只是标准的平面文件数据存储,并不一定是那么不寻常.
正如Paolo指出的那样,没有办法通过jQuery或任何其他类型的javascript直接读/写文件.
Cookies是你最好的选择.寻找jquery cookie插件.
Cookie是针对这种情况而设计的 - 您希望在客户端保留有关此客户端的一些信息.请注意,Cookie会在每个Web请求中来回传递,因此您无法在其中存储大量数据.但只是一个问题的简单答案应该没问题.