location.href 实现点击下载功能

如果页面上要实现一个点击下载的功能,传统做法是使用一个 a 标签,然后将该标签的 href 属性地址指向下载文件在服务端的地址(相对地址或者绝对地址),比如这样:

675542-20151102134105024-124265809.png

能这样实现是因为,在浏览器地址栏输入一个文件地址,如果该文件能在浏览器上打开,那么就直接打开,比如 html 文件,jpg文件等;但是如果该文件不能在浏览器上打开,就会变为下载。

但是有时候这样做会显得有点复杂。比如说我在一个移动端页面定义了一个 app 的下载按钮,显然下载地址会根据机器系统(Android 或者 ios)需要判断,这样就要在 javascript 重置 a 标签的 href 属性。我们十分想要一个 download 函数,能够监听任何 dom 元素,然后完成下载操作,而不仅仅是 a 标签,答案是有的,location.href 可以做到。

的确,既然 a 标签打开一个文件能实现下载功能,那么用 location.href 就也能做到了。

if (isIphone) {
  location.href = '..';
} else {
  location.href = '..';
}

这样,html 端就清净多了。

你可能感兴趣的:(location.href 实现点击下载功能)