前言
有时候,有一些链接用a标签,或者window.location,href 下载不了。或者在Android,IOS存在兼容性问题。这时候就会想到使用原生js 通过 form方式下载文件。
直接上代码
/**
data: 所需传的参数
*/
let data = {
c: "",
m: "",
p: {},
};
let url = "https://xxx.pdf";
// 创建form, 添加所需传的参数
var formHtml = "<form id='downLoadForm' style='display:none' method='post' action='"+ url +">" +
"<input type='hidden' name='c' value='" + data.c + "'>" +
"<input type='hidden' name='m' value='" + data.m + "'>" +
"<input type='hidden' name='p' value='" + JSON.stringify(data.p) + "'>" +
"</form>";
var divDom = document.createElement("div");
divDom.innerHTML = formHtml;
document.body.appendChild(divDom);
// 下载文件
document.getElementById("downLoadForm").submit();
// 下载完了,需要删除该form,否则会生成多个form,一个小优化
document.body.removeChild(divDom);
如果依然是预览效果,那么就是这个链接的问题了,找运维或者后台吧–_--