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