在IE浏览器中,可以通过创建ActiveXObject对象的FileSystemObject来实现文件的导出,ActiveXObject为IE浏览器特有的控件;非IE浏览器不能直接通过js来导出文件到指定路径,否则需要通过服务器或者其他来实现。我这里只讨论前端js这块。实现IE浏览器导出文件到指定路径,通过XMLHttpRequest来解析文件(可适应大多数浏览器),实现用js创建xml格式的数据,详细的XMLHttpRequest知识大家可以查询相关资料。
代码如下:
/* 保存数据到xml/json文件 */
function saveXML(content) {
try {
if (is_Ie) {
fso = new ActiveXObject("scripting.FileSystemObject");
path = "E:\\HBuilder\\configSecurity\\data\\";
if (!fso.FolderExists(path)) { // 若当前路径不存在,则创建此路径。
fso.CreateFolder(path);
}
path += "test.json"; // 创建文档的路径。
tf = fso.CreateTextFile(path, true); // 创建新文件。
var result = formatXml(content); //格式化xml数据
tf.WriteLine(result);
tf.Close();
} else {
//Firefox 也有标准方法,但可能造成其他浏览器报错,故省略
//使用 XMLHttpRequest 替代,适用于大部分浏览器(以下代码只能实现加载xml/json数据)
/* var xmlHttp=new XMLHttpRequest();
xmlHttp.open("GET","data.json",false);
xmlHttp.send(null) ;
return xmlHttp.responseXML;*/
}
} catch (e) {
alert(e.message);
}
}
实现用js创建xml格式的数据:
//实现js创建xml格式的数据
xmldoc = document.implementation.createDocument("", "messageConf", null);
var child = xmldoc.createElement("child");
xmldoc.documentElement.appendChild(child);
console.log(xmldoc);