有没有办法让jQuery从文件中获取信息?可能吗?怎么样?
答案 0 :(得分:74)
不,JavaScript没有写文件的权限,因为这至少可以说是一个巨大的安全风险。但是,如果你想在服务器端获取/存储信息,你当然可以对PHP / ASP / Python /等进行Ajax调用。然后可以在服务器中获取/存储数据的脚本。如果您的意思是在客户端计算机上存储数据,那么仅使用JavaScript是不可能的。我怀疑Flash / Java可能,但我不确定。
如果您只是尝试在特定用户的不可靠时间段内存储少量信息,我认为您需要Web Storage API或Cookie。不过,我不确定你的问题是什么。
答案 1 :(得分:37)
答案 2 :(得分:16)
HTML5和Google Gears都主要通过嵌入式SQLite API添加本地存储功能。
答案 3 :(得分: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;
}
调用如下函数:
msg = "I am the president of tautology club.";
save_content_to_file(msg, "C:\\test");
答案 4 :(得分:9)
您需要通过Web编程语言处理文件访问,例如PHP或ASP.net。
要设置它,你会:
创建一个处理文件读写的脚本。这应该对浏览器可见。
将jQuery ajax请求发送到该脚本,该脚本可以写入数据或读取数据。您需要通过请求参数传递所有读/写信息。您可以在jQuery ajax文档中了解更多相关信息。
确保您清理正在存储的任何数据,因为这可能存在安全风险。但是,这实际上只是标准的平面文件数据存储,并不一定非同寻常。
Paolo指出,没有办法通过jQuery或任何其他类型的javascript直接读/写文件。
答案 5 :(得分:5)
Cookies是您最好的选择。寻找jquery cookie插件。
Cookie是针对这种情况而设计的 - 您希望在客户端保留有关此客户端的一些信息。请注意,Cookie会在每个Web请求中来回传递,因此您无法在其中存储大量数据。但只是对问题的简单回答应该没问题。
答案 6 :(得分:1)
如果你想在页面中没有一堆服务器端处理的情况下这样做,那么将文本值放入隐藏字段(使用PHP)可能是一个可行的想法。然后你可以使用jQuery来处理隐藏的字段值。
无论你的船漂浮着什么:)