Javascript方法下载生成的文件而不替换url

时间:2017-11-17 11:37:35

标签: javascript file url download reload

我正致力于制作文字&当用户从同一表单上的文本区域中显示的查询中单击下载时的sql文件。我写了以下代码。但问题是,URL正在被替换,整个页面在下载后会自动刷新。因此,继续运营无法进行。

Javascript方法

function download() {
      var element = document.createElement('a');
      var filename = document.getElementById("filenameInput").value;
      var text = document.getElementById("runquerytext").value;
      element.setAttribute('href', 'data:text/plain;charset=utf-8,' + text);
      element.setAttribute('download', filename);

      element.style.display = 'none';
      document.body.appendChild(element);

      element.click();

      document.body.removeChild(element);
}

有关如何在不重新加载/更改uri的情况下下载生成的文件的任何建议将非常感激。

1 个答案:

答案 0 :(得分:0)

如果您希望有人在不刷新页面的情况下下载文件,我建议您使用iframe。页面正在重定向,因为“a”标记在单击时重定向页面。因此,要解决使用javascript或图像标记生成动态iframe标记。例如:

    function download() {
     var element = document.createElement('iframe');
     var filename = document.getElementById("filenameInput").value;
     var text = document.getElementById("runquerytext").value;
     element.setAttribute('src', 'data:application/octet-stream;charset=utf-8,' + text);
     element.setAttribute('download', filename);
     element.style.display = 'none';
     document.body.appendChild(element);
    }