原理:html的a标签,设置dawnload属性后,可以下载href指向的文件。

在js中往往是点击某一个按钮后下载一个文件,并且文件的地址是变化的。因此我们可以动态创建一个a标签,设置好download和href属性,然后添加到页面中,用代码触发click事件,就可以实现下载了。

如你要下载下面这个图片

<a href="需要下载的文件地址" download="文件名">下载象棋图片</a>

  

/**
* @author web得胜
* @param {String} url 需要下载的文件地址
* */
function downLoad(url){
var oA = document.createElement("a");
oA.download = '';// 设置下载的文件名,默认是'下载'
oA.href = url;
document.body.appendChild(oA);
oA.click();
oA.remove(); // 下载之后把创建的元素删除
}

  下面是我用js+canvas写的一个象棋程序,博客里还有五子棋人人对战、人机对战,黑白棋人人对战,一只一旦等小游戏。感兴趣的可以关注下我哈~

js下载文件方法与原理小分析的更多相关文章

  1. 使用js下载文件

    使用Echarts地图时,需要一些地图数据,到Echarts下载地图数据文件时,发现其下载是直接通过js下载,从其网站上扒下来的记录于此 FileSave.min.js网络地址:http://ecom ...

  2. 10.用js下载文件(需要后端链接)

          用js下载文件 PS:本文说的,并非如何用js创建流.创建文件.实现下载功能. 而是说的:你已知一个下载文件的后端接口,前端如何请求该接口,实现点击按钮.下载文件到本地.(可以是zip啦. ...

  3. 两种 js下载文件的步骤

    ----------------------------------引用地址链接------------------------------------------------- http://www ...

  4. .NET两种常见上传下载文件方法

    1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...

  5. Js下载文件到本地(兼容多浏览器)

    在客户端通过js下载文件,试过几种下载方式,iframe方式仅限于IE浏览器,window.open(url),location.href=url 这两种方式在chrome浏览器还会是直接打开文件而不 ...

  6. js 下载文件/导出

    const url = '/sasd/fsd/xxxx/exportMailData2Excel'this.downloadFile(url, 'blob', this.isSearch) // 调用 ...

  7. 前端通过url下载文件方法

    前端通过url下载文件方法 产生背景 浏览器通过url下载文件,当浏览器识别出资深能播放的资源文件,就不会走下载流程,会直接打开 解决方法 1.让后台转成请求的方式,输出文件流(如果想实现批量下载-因 ...

  8. js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法

    对于js页面来说,未使用服务端控件,点击下载按钮时不会触发服务端事件,且不会提交数据到服务端页面后台进行数据处理,所以要下载文件比较困难.且使用jQ的post来请求一般处理程序也不能实现文件的下载,根 ...

  9. 两种 js下载文件的方法(转)

    function DownURL(strRemoteURL, strLocalURL){         try{             var xmlHTTP = new ActiveXObjec ...

随机推荐

  1. 全球最牛的100家AI创企:有多少独角兽?

    全球最牛的100家AI创企:有多少独角兽? 自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?其中有多少家独角兽公司?中国企业表现如何呢? 近期, ...

  2. DEV GridControl 控件属性大全

    Devpress.XtraGrid.GridControl.GridView 属性 说明 Options OptionsBehavior 视图的行为选项 AllowIncrementalSearch ...

  3. 网站被攻击扫描SQL注入的日常记录

    我发了个博客,泄露了域名之后,便有人疯狂的尝试攻击我的站点,奈何我防守做得比较好,直接把网段封了,看到403还锲而不舍,我真是想给他颁奖了 查看ua,发现很多sqlmap的ua,肯定会是被刷了,只是运 ...

  4. day18 12.丢失更新介绍与悲观锁

    共享锁在一条记录上是可以加多个的,共享嘛.排它锁的意思是指这条记录上如果有任何其他的锁我排它锁是加不上的,有了排它锁其他锁也是加不上的,唯一的.比如说现在我的记录上没锁,加了排它锁其他人使用不了,我这 ...

  5. 【模板】倍增LCA [2017年5月计划 清北学堂51精英班 Day3]

    P3379 [模板]最近公共祖先(LCA) 题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询 ...

  6. JS 获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  7. 微信小程序-- WXML语法

    页面数据 test.js test.wxml 运行结果:

  8. php require_once的使用方法

    学习笔记 require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含. equire_once() 为了避免重复加载文件. ...

  9. SVN failed: 405 Method Not Allowed

    SVN update 时,错误:PROPFIND request on '/svn/xxxx' failed: 405 Method Not Allowed. 解决办法如下: 第一步:查看SVN服务器 ...

  10. 高效整洁CSS代码原则 (下)

    6. 适当的代码注释 代码注释可以让别人更容易读懂你的代码,且合理的组织代码注释,可使得结构更加清晰.你可以选择做的样式表的开始添加目录: /*---------------------------- ...