我想使用Javascript从此HTML表单中获取数据,并将其保存到现有的CSV文件中。下面是我现在拥有的HTML和Javascript。当我点击提交时,没有任何反应。有任何想法吗?代码
function WriteToFile(messagebox) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fileLoc = "\\/*pretend file path*/\MessageLog.csv";
var file = fso.OpenTextFile(fileLoc, 8, true,0);
file.writeline(messagebox.Student Name.value + ',' +
messagebox.Student ID Number.value);
file.Close();
alert('File created successfully at location: ' + fileLoc);
}
<form name = "messagebox" id = "messagebox" method = "post" onsubmit = "SetData();WriteToFile(this.form)" enctype = "text/plain">
<div id = "residentinfo">
<p>Student Name
<input type = "text" name = "Student Name" Value = "" required></p>
<p>Student ID Number <input type = "text" name = "Student ID Number" value = "" maxlength = "9" required></p>
答案 0 :(得分:0)
是的,JavaScript在大多数现代浏览器中都不支持ActiveXObject。
在1990年代早期到中期,网络仍然是新的&amp;人们正在了解它,加上它能做到的事情。无法做到。 Javascript是故意设计的,无法访问用户的文件系统。它被认为是一个安全功能,但它很快成为一个成功的口碑卖点。它让人们感到安全,网站不允许任何人将病毒写入用户的硬盘 - 打开网络连接隧道以窃取用户的电子表格和/或其他银行相关数据&#39 ; s硬盘 - 因为Javascript语言无法访问他们的硬盘。因此,感觉安全,他们会试用浏览器&amp;查找网站。今天,我们都知道网站是如何工作的。似乎没有人害怕客户端文件系统访问了。
此dottoro.com站点列出了ActiveXObject仅供IE使用,但提到object标签可在跨浏览器环境中使用。唯一的问题是object标签不能用于文件写入。因此,除非用户被迫使用MSIE,否则无法再使用ActiveXObject。
原因是ActiveXObject是Microsoft的jScript Javascript克隆的一部分。大多数网络行业从未采用过jScript。微软最后一次更新是在2011年。我唯一看到用于ActiveXObject的是IE 5/6后备。它仅在浏览器无法支持更新的Ajax引擎功能时使用,例如XMLHttpRequest(XHR)对象。
快进到现代:您可能需要查看Node.js filesystem docs来创建.csv文件。您可以使用他们的文件系统API来完成它,但不能使用旧的ActiveXObject技术。
在SO上试试其中一个jQuery .csv file examples。