我有这个代码用javascript创建一个文件。
function WriteToFile()
{
var txt = new ActiveXObject("Scripting.FileSystemObject");
var s = txt.CreateTextFile("11.txt", true);
s.WriteLine('Hello');
s.Close();
}
WriteToFile();
它可以正常使用IE但不适用于Chrome和Firefox。
通常错误是ReferenceError: ActiveXObject is not defined
是否有任何替代方法可以在javascript中创建文件,而不是ActiveXobject(Scripting.FileSystemObject")
?
答案 0 :(得分:1)
这是不可能的。至少在纯JavaScript中不是这样,ActiveX对象是Windows / IE的一部分,不属于ES6规范(http://www.ecma-international.org/ecma-262/6.0/index.html),这就是Chrome或Firefox不支持的原因。
如果您希望编写可在用户本地文件系统上创建文件的JavaScript程序,则需要编写客户端应用程序,例如chrome app(https://developer.chrome.com/apps/api_index)或使用您的程序编写程序电子壳(http://electron.atom.io/)。
但是,如果您想要的是在用户文件系统上的特定位置创建文件的跨浏览器解决方案,那么它本身就不可能。
当然存在浏览器插件,但您需要每个用户都安装插件,因此这不太准确。出于安全考虑,不允许网站读取用户硬盘,这是件好事!