美文网首页
不打开新页面下载文件

不打开新页面下载文件

作者: code_搬运工 | 来源:发表于2021-04-09 15:39 被阅读0次

1. 使用IFrame

 var _url = 'aa.com/download';
 var fromstr = '<iframe id="d_iframe" name="d_iframe" style="display:none;"></iframe>';
 $(fromstr).appendTo('body');
 $('#d_iframe').attr('src', _url);

image.png

2. IFrame 模拟POST请求

(1). 方法
function postDownLoadFile (options) {
    var config = $.extend(true, { method: 'post' }, options);
    var $iframe = $('<iframe id="down-file-iframe" />');
    var $form = $('<form target="down-file-iframe" method="' + config.method + '" />');
    $form.attr('action', config.url);
    for (var key in config.data) {
        $form.append('<input type="hidden" name="' + key + '" value="' + config.data[key] + '" />');
    }
    $iframe.append($form);
    $(document.body).append($iframe);
    $form[0].submit();
    $iframe.remove();
}

(2) 调用

  postDownLoadFile({
                         url: $('#exportUrl').val(),
                         data: {
                             Term: $("#Term").val(),
                             Course: $("#Course").val(),
                             Chapter: $("#Chapter").val(),
                             HWID: $("#HWID").val(),
                             PaperID: $("#PaperID").val(),
                             StudentName: $("#StuName").val(),
                             StudentCode: $("#StuCode").val(),
                             Status: $("#Status").val(),
                             BeginTime: $("#BeginTime").val(),
                             EndTime: $("#EndTime").val(),
                             ClassName: $("#ClassName").val(),
                             optionsStr: escape(dataTable.ajax.params().optionsStr),
                             extype: 'page'
                         },
                         method: 'post'
                     });





3. 使用a 标签

 var elink = document.createElement('a');
 elink.download = '文件名';
 elink.style.display = 'none';
 elink.href = downUrl;
 elink.target = "_blank";
 document.body.appendChild(elink);
 elink.click();
 document.body.removeChild(elink);


image.png

4.XMLHttpRequest下载

image.png

5.form表单提交下载

form表单是个比较常用的html表签,用户提交用户信息,比如常见的登录、注册界面大部分都是通过form表单进行数据提交的。form表单所有要提交的数据都必须放在form标签中,method属性定义提交的方法(有get和post两种提交方法),action属性定义请求的地址。form标签中支持input、menus、textarea、fieldset、legend 和 label 等元素,通过submit向服务器提交数据。这里我创建了form表单和input框,input用于输入请求的参数,form用于提交数据请求


image.png

参考: https://www.toutiao.com/a6781359892960641544/?timestamp=1587724821&app=news_article_lite&group_id=6781359892960641544&req_id=202004241840200100140411563803B546

相关文章

  • js 实现图片、pdf、docx的下载

    同域名下的文件下载 新页面打开 a标签填写download属性 跨域的文件下载 以上的方法不再起作用 对于图片(j...

  • 不打开新页面下载文件

    1. 使用IFrame 2. IFrame 模拟POST请求 3. 使用a 标签 4.XMLHttpRequest...

  • 前端下载文件

    文件下载是在开发中常见的一种需求,下面是在实际项目中使用的下载方案,记录一下 一、打开新页面下载文件 这是最简单的...

  • a标签

    不会打开新页面,在本页面中下载

  • 《锋利的jQuery》读书笔记

    引入jQuery文件 例如: jQuery文件可以去jQuery官网上进行下载。jQuery第一段程序 刷新页面会...

  • 下载程序前需要做

    在下载程序时,主板上的灯不闪的话,证明下载不成功。 放入光盘,打开光盘文件。点击USB文件夹 双击USB驱动, 不...

  • Mac安装配置nodeJS

    一、下载NodeJS 下载地址:http://nodejs.cn/download/ 二、打开文件 三、打开文件依...

  • Java下载文件的几种方式

    以流的方式下载 下载本地文件 下载网络文件 支持在线打开的方式

  • webSocket开源框架:SocketRocket

    git下载地址:square/SocketRocket 下载解压文件打开SocketRocket文件夹 把这个文件...

  • webstrom提示map未授权解决方法

    今天用webstorm,打开HTML文件只要一刷新页面就会提示.map文件未授权。像这样: 解决方法: 进入设置界...

网友评论

      本文标题:不打开新页面下载文件

      本文链接:https://www.haomeiwen.com/subject/nizzbctx.html