【问题标题】:How to use js to save the content in the browser to local?如何使用js将浏览器中的内容保存到本地?
【发布时间】:2013-09-10 10:52:30
【问题描述】:

我想使用 Javascript 生成一个 txt 文件,其内容将是一个字符串并将其链接到一个按钮,以便单击按钮将生成文件下载。该文件不能存储在任何地方,因为内容应该是动态的。

我该怎么做?

【问题讨论】:

  • 您将无法使用 javascript 生成它。您将不得不使用服务器端脚本。
  • 如果JS是必须的,那么结合Ajax和jQuery的"dash"使用它。

标签: javascript php html file download


【解决方案1】:

您不能使用 javascript 生成文件。

但是,您可以使用链接到 PHP 文件的隐藏 iframe 来执行此操作。该 PHP 文件应包含正确的标头(Content-TypeContent-Disposition 等)。

您应该在此处找到更多详细信息:Download file through an ajax call php

【讨论】:

  • 我会看看这个,我想使用 javascript 的原因是因为我希望内容是从 json 响应中解析出来的字符串,该响应只有在用户点击其他内容后才会收到按钮
【解决方案2】:

您可以像这样使用“下载”和“数据”属性,

var div = document.getElementById('div');
var a = document.createElement('a');

div.appendChild(a);
a.text='download test file';
a.download='aaaabbb.txt';
a.href="data:text/plain," + 'aaaaaaaaaccccccccccccc';
<div id="div">aaaaa</div>

【讨论】:

    【解决方案3】:

    您还可以使用 blob 并单击 a 标签,这将弹出下载窗口,而无需用户单击 a 标签。

    var div = document.getElementById('div');
    var a = document.createElement('a');
    
    div.appendChild(a);
    //a.text = 'download';
    a.download='aaaa.txt'
    a.href = URL.createObjectURL(new Blob(['iikkkddddlsldfsjlfsdjf'], {type: 'application/text'}));
    a.click()
    <div id="div">aaaaa</div>

    要保存较大的内容可以参考How to generate text files and download a zip file in Javascript?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-08
      • 2019-02-21
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多