我正在尝试使用JavaScript创建一个文本文件,我知道可以使用ActiveX对象,但它只能在IE浏览器上运行良好。
我的要求是使用JavaScript为Safari浏览器生成文本文件?
在这方面,有人可以帮助我吗?
答案 0 :(得分:12)
另一种方法是使用Blob
和URL.createObjectURL
。包括Safari 6+在内的所有最新浏览器都支持它们。
var textFile = null,
makeTextFile = function (text) {
var data = new Blob([text], {type: 'text/plain'});
// If we are replacing a previously generated file we need to
// manually revoke the object URL to avoid memory leaks.
if (textFile !== null) {
window.URL.revokeObjectURL(textFile);
}
textFile = window.URL.createObjectURL(data);
// returns a URL you can use as a href
return textFile;
};
以下是example,它使用此技术保存textarea
中的任意文字。
关于该示例的另一个注意事项是我在下载链接上使用了download
attribute。不幸的是,Safari目前不支持它。但是在浏览器中,单击时会自动下载文件,而不是在浏览器中打开文件。此外,由于我将download
属性设置为info.txt
,因此将使用该名称下载文件,而不是createObjectURL
生成的随机名称。
答案 1 :(得分:8)
在JavaScript中,您可以使用以下行来询问用户保存文本文件,
window.open("data:text/json;charset=utf-8," + escape("Ur String Object goes here"));
我曾经在一些流行的浏览器中对此进行了测试...确保它在Safari中可以正常使用.. 祝你好运
答案 2 :(得分:-2)
但我的要求是使用javascript生成一个文本文件 safari浏览器
由于安全限制,使用vanilla Javascript是不可能的。但是,您可以使用服务器端javascript ,例如Node.JS或 Ajax 或其他一些服务器端技术。