在 JavaScript 中创建文本文件

新手上路,请多包涵

我正在尝试使用 JavaScript 创建一个文本文件,我知道使用 ActiveX 对象是可能的,但它只能在 IE 浏览器上运行良好。

我的要求是使用 JavaScript 为 Safari 浏览器生成一个文本文件?

任何人都可以在这方面帮助我吗?

原文由 nagendra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 253
1 个回答

另一种方法是使用 BlobURL.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;
  };

这是一个使用此技术从 textarea 保存任意文本的 示例

关于该示例的另一件事是我在下载链接上使用了 download 属性。遗憾的是,Safari 目前不支持它。但是,在支持的浏览器中,单击时会自动下载文件,而不是在浏览器中打开文件。此外,由于我将 download 属性设置为 info.txt 将使用该名称下载文件,而不是 createObjectURL 生成的随机名称。

原文由 Useless Code 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题