21xrx.com
2024-12-22 23:56:55 Sunday
登录
文章检索 我的文章 写文章
我最喜欢的JavaScript函数——saveas
2023-06-16 11:33:41 深夜i     --     --
JavaScript函数 文件下载 saveas函数

在我使用JavaScript编写网页时,我经常会用到一个非常有用的函数——saveas。这个函数可以让用户下载文本或二进制文件,非常方便。

下面是一个示例代码,展示了如何使用saveas函数来下载文本文件:


function downloadTextFile(filename, text) {

 var element = document.createElement('a');

 element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));

 element.setAttribute('download', filename);

 element.style.display = 'none';

 document.body.appendChild(element);

 element.click();

 document.body.removeChild(element);

}

在这个代码中,我们定义了一个downloadTextFile函数,它接受两个参数:filename和text。filename是你想要保存的文件名,text是你想要保存的文本内容。使用data URI方案,我们将文本内容编码为URI,保存到一个创建的链接中。然后我们将这个链接添加到页面中,模拟用户的点击下载操作,最后再移除该链接。

除了下载文本文件,我们也可以使用saveas函数来下载二进制文件,比如图片、音频或视频。这里是一个示例代码,展示如何下载图片:


function downloadImageFile(filename, url) {

 var xhr = new XMLHttpRequest();

 xhr.open('GET', url, true);

 xhr.responseType = 'blob';

 xhr.onload = function() {

  if (this.status == 200) {

   var blob = new Blob([this.response], {type: 'image/png'});

   var element = document.createElement('a');

   element.href = URL.createObjectURL(blob);

   element.download = filename;

   element.style.display = 'none';

   document.body.appendChild(element);

   element.click();

   document.body.removeChild(element);

  }

 };

 xhr.send();

}

在这个代码中,我们使用XMLHttpRequest对象来获取图片的二进制内容,然后使用Blob对象来创建一个二进制文件,最后再通过createObjectURL函数创建一个指向该文件的URL链接。

总之,saveas函数是一个非常有用的JavaScript函数,可以帮助我们下载各种类型的文件。如果你需要在自己的网页中提供文件下载功能,不妨试试这个函数吧!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复