代码之家  ›  专栏  ›  技术社区  ›  Nayantara Jeyaraj

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

  •  0
  • Nayantara Jeyaraj  · 技术社区  · 8 年前

    我正在努力生成一个文本&用户单击时的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 回复  |  直到 8 年前
        1
  •  0
  •   n00b    8 年前

    如果您希望有人下载文件而不刷新页面,我建议您使用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);
        }