我想创建注册表单并使用ActiveXObject将数据写入data.txt。 我写的是
<script type="text/javascript">
function WriteFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.CreateTextFile("E:\\Test.txt", true);
x=document.getElementById("name").value;
y=document.getElementById("password").value;
fh.WriteLine(x+"#"+y);
fh.Close();
}
</script>
<BODY>
<form>
<input type="text" id="name"/>
<input type="text" id="password"/>
<input type="button" value="Sign Up" id="write" onclick="WriteFile()"/>
</form>
</BODY>
当我尝试这种方式时,每次单击“注册”按钮时,新数据都会覆盖以前的数据。我尝试使用fh.AppendLine(x + "#" + y)
,但它没有用。
有人可以帮助我如何添加数据,而不是覆盖数据吗?
答案 0 :(得分:1)
很久以前我做过这样的事情......(当我使用Windows时)我认为这是因为你用CreateTextFile
的新文件替换文件所以如果文件已经存在你需要这样做:
function AppendLine()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("E:\\Training Asslab\\Advance\\Write to File\\Test.txt", 8, True);
x=document.getElementById("name").value;
y=document.getElementById("password").value;
fh.WriteLine(x+"#"+y);
fh.Close();
}
答案 1 :(得分:1)
CreateTextFile会覆盖当前文件。 在创建之前,您应该使用FileExists检查其存在。 如果确实存在,则可以使用OpenTextFile。
以下是相关的documentation
答案 2 :(得分:1)
免责声明您绝不应该使用这些功能。他们只在IE中工作并且非常糟糕。
我认为您的问题源于使用CreateTextFile
。您应该使用OpenTextFile
并将第二个参数设置为8
。这将允许追加。
答案 3 :(得分:1)
使用OpenTextFile方法创建标记和ForAppending模式而不是CreateTextFile
。
但是,请注意,您不仅要将自己限制在非常旧的IE版本和受信任区域内,而且还要将文件保留在用户的本地驱动器上,而不是放在服务器上。因此,您无法对此“注册数据”执行任何操作。
答案 4 :(得分:0)
使用("E:\\Test.txt", 8);
。 8是附加的模式。
因此,我想知道你是否和我有同样的功课,因为我也有同样的问题,但我被困在AvtiveXObject
行