首页 > 开发 > JS > 正文

如何在Firefox下使用利用JS创建文件

2017-09-05 13:02:21  来源:网友分享

在IE下可以使用ActiveXObject来创建,而且需要将浏览器设置为安全性最低。
有如下代码:

function getfile(){        var creatFile=new ActiveXObject("Scripting.FileSystemObject");    var f1=creatFile.CreateTextFile("f:\\codeTest\newTxt.txt",true);        f1.WriteLine("The first line");//写一行        f1.WriteBlankLines(1);        f1.Write("这个是第二个行!");        f1.Close();//文件写完,关闭        var f2=creatFile.GetFile("f:\\codeTest\newTxt.txt");        if(f2!=null)        {                alert("文件创建成功!");        }        else        {                alert("文件没有创建成功!");        }                        //alert("这个文件相关信息"+DateLastModifide);}`HTML代码如下:`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script language="javascript" type="text/javascript" src="createFile.js"  ></script><title>无标题文档</title></head> <body> <p>测试开始!</p><div style=" text-align:center"><p> <input type="button" id="createFile" value="创建新文件"  onclick="getfile()"/></p></div></body></html>

但是这段代码在IE下报这样的错误:

Bad file name or number!

而且在WEB目录下也没有发现创建的新文件。
请问是怎么回事。如果说不能用那么微软设计的ActiveXObject这个东西有什么实用价值??

解决方案

firefox不能用js创建客户端的文件,这个关系到安全性,如果创建文件,必须要有一个地方储存。这样js就要访问客户端的文件系统,如果js可以访问客户端的文件系统,客户端的很多隐私文件就会被访问。
你可以用cookie或是html5 里面的sessionstorage, localStorage 储存临时变量。