前端下载文件

兼容性写法

 function saveFile(data, filename) {var save_link = document.createElementNS("http://www.w3.org/1999/xhtml","a");save_link.href = data;save_link.download = filename;var event = document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null);save_link.dispatchEvent(event);}

使用  这里也支持下载路径

saveFile("./一起变好_3.2.0_release-arm64-v8a.apk", "一起变好.apk");

传统的下载页模板

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>一起变好</title><meta name="description" content="一起变好" /><meta name="keywords" content="一起变好,一起,变好" /><linkrel="shortcut icon"href="https://hfresrc.oss-cn-hangzhou.aliyuncs.com/wechat/logo.png"/></head><style>* {margin: 0;padding: 0;}body {background-color: #eff0fb;}.container {width: 100vw;height: 100vh;overflow: hidden;background-image: url("./images/download_bg.webp");background-size: 100% auto;background-repeat: no-repeat;background-position: top;background-color: #eff0fb;position: relative;}.alert {position: fixed;top: 0;left: 0;width: 100vw;height: 100vh;display: none;}.btn_container {position: absolute;bottom: 5%;left: 50%;transform: translateX(-50%);display: flex;}.android_btn {width: 40vw;height: calc(40vw / 3);background-image: url("./images/android_btn.webp");background-size: 100% 100%;background-repeat: no-repeat;margin-right: 20px;cursor: pointer;}.ios_btn {width: 40vw;height: calc(40vw / 3);background-image: url("./images/ios_btn.webp");background-size: 100% 100%;background-repeat: no-repeat;cursor: pointer;}</style><body><div class="container"><imgclass="alert"onclick="document.querySelector('.alert').style.display = 'none'"src="https://hytresource.oss-cn-hangzhou.aliyuncs.com/wechat/index-appDown-alert.png"/><div class="btn_container"><div class="android_btn" onclick="downloadAndroidApp()"></div><div class="ios_btn" onclick="downloadIosApp()"></div></div></div></body><script>// 跳转到使用本地的apk安装包function downloadAndroidApp() {var isWxOrAli = false;if (/MicroMessenger/.test(window.navigator.userAgent)) {isWxOrAli = true;} else if (/AlipayClient/.test(window.navigator.userAgent)) {isWxOrAli = true;} else {isWxOrAli = false;}if (isWxOrAli) {document.querySelector(".alert").style.display = "block";return;}saveFile("https://fhoss.46better.com/apk/app_for_better.apk?time=" + new Date(),"app_for_better.apk");}function downloadIosApp() {window.location.href ="https://apps.apple.com/cn/app/%E4%B8%80%E8%B5%B7%E5%8F%98%E5%A5%BD/id6470769936";}// 下载文件function saveFile(data, filename) {var save_link = document.createElementNS("http://www.w3.org/1999/xhtml","a");save_link.href = data;save_link.download = filename;var event = document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null);save_link.dispatchEvent(event);}</script>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630346.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 8.0 新特性之 Clone Plugin

个人感觉&#xff0c;主要还是为 Group Replication 服务。在 Group Replication 中&#xff0c;如果要添加一个新的节点&#xff0c;这个节点差异数据的补齐是通过分布式恢复&#xff08; Distributed Recovery &#xff09;来实现的。 在 MySQL 8.0.17 之前&#xff0c;只支…

使用Google reCAPTCHA防止机器注册

本文作者&#xff1a;陈进坚 博客地址&#xff1a;https://jian1098.github.io CSDN博客&#xff1a;https://blog.csdn.net/c_jian 简书&#xff1a;https://www.jianshu.com/u/8ba9ac5706b6 联系方式&#xff1a;jian1098qq.com 环境要求 能翻墙的电脑域名 验证原理 在谷歌…

如何在忘记密码情况下更改Windows 10用户的密码?这里有详细步骤

如果你想更改登录用户的Windows 10密码,当你不知道当前或旧用户密码时,这篇文章已经准备好让你学习如何操作了。 使用默认管理员更改Windows 10用户密码 如果我们启用了默认管理员,那么即使我们忘记了Windows 10用户密码,我们也可以使用内置管理员访问计算机,并在没有任…

web安全学习笔记(12)

记一下第十六节课的内容。 一、jQuery Ajax 我们要先下载jQuery。 首先我们转移到template目录下&#xff0c;准备把jQuery下载到这下面。 直接wget下来就可以了。 这样我们就下载好了jQuery&#xff0c;下面我们学习如何使用。 jQuery 调用 ajax 方法 格式&#xff1a;$.…

Spring Boot + 事务钩子函数,打造高效支付系统!

今天&#xff0c;我继续安利一个独门绝技&#xff1a;Spring 事务的钩子函数。 单纯的讲技术可能比较枯燥乏味。 接下来&#xff0c;我将以一个实际的案例来描述Spring事务钩子函数的正确使用姿势。 一、案例背景 拿支付系统相关的业务来举例。在支付系统中&#xff0c;我们…

22长安杯电子取证复现(检材一,二)

检材一 先用VC容器挂载&#xff0c;拿到完整的检材 从检材一入手&#xff0c;火眼创建案件&#xff0c;打开检材一 1.检材1的SHA256值为 计算SHA256值&#xff0c;直接用火眼计算哈希计算 9E48BB2CAE5C1D93BAF572E3646D2ECD26080B70413DC7DC4131F88289F49E34 2.分析检材1&am…

网站添加PWA支持,仅需三步,无视框架的类型

总结起来&#xff0c;网站配置PWA简单步骤为&#xff1a; 编写 manifest.json&#xff1b;编写 serviceWorker.js&#xff1b;在 index.html 引入上述两个文件&#xff1b;把上述三个文件放在网站根目录(或者同一目录下)&#xff1b;网站需要部署在https环境才能触发&#xff…

2010-2022年各省新质生产力测算数据(含原始数据+计算代码+计算结果)

2010-2022年各省新质生产力测算数据&#xff08;含原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2010-2022年 2、来源&#xff1a;国家统计局、各省年鉴、能源年鉴、环境年鉴 3、范围&#xff1a;31省 4、指标&#xff1a; 省份、年份、分地区授权专利数&…

在Windows 10中切换用户的几种方法,总有一种适合你

序言 如果你不想关闭计算机&#xff0c;又想从计算机上的另一个用户帐户启动&#xff0c;如果在计算机中已创建了多个本地帐户&#xff0c;则可以快速切换到另一用户。在这里&#xff0c;我们将分享在Windows 10中切换用户帐户的有效方法。 在登录屏幕切换用户 对于学校或公…

永久免费次数ChatGPT国内镜像网站【强烈建议收藏】

gctohttps://chat.tomyres.com/#/pages/web/index?n0 觉得分享的网站好用的话&#xff0c;记得点赞收藏哦。

算法学习笔记:Bi-LSTM和Bi-GRU

这篇文章的作为前几篇RNN\LSTM\RNN的后续之作&#xff0c;主要就是补充一个这两个哥的变体&#xff0c;想详细了解RNN\LSTM\GRU的详细理论和公式推导以及代码的请前往下面链接&#xff1a; 算法学习笔记&#xff1a;循环神经网络&#xff08;Recurrent Neural Network)-CSDN博…

C语言进阶课程学习记录-函数指针的阅读

C语言进阶课程学习记录-函数指针的阅读 5个标识符含义解析技巧 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 5个标识符含义解析 int (*p1) (int* , int (*f) ( int* ) );定义了指针p1,指向函数&#…