循环window.location.href下载文件却只执行最后一个,每次都跑到了,但是只下载了循环的最后一个

function ikkatuPdf(pdfArray,i){
var pdfId = "KBT-5010";
var filePath = $(pdfArray[i]).val();
var mimeType = "text/html";
if(pdfArray.length == i){
return false;
}else{
window.location.href='${pageContext.request.contextPath}/cm/download?gamenId='+pdfId+'&path='+filePath+'&fileName='+pdfName(filePath, i)+'&mimeType='+mimeType;

i++;
ikkatuPdf(pdfArray,i);
}
}

0

2个回答

页面跳转和下载是异步的
window.location.href='${pageContext.request.contextPath}/cm/download?gamenId='+pdfId+'&path='+filePath+'&fileName='+pdfName(filePath, i)+'&mimeType='+mimeType;
你还没来得及跳转呢,你又下一个了。

正确的做法是不要跳转,而是弹窗,不过首先要让浏览器允许弹窗。

2

用下面方式下载文件

    var aLink = document.createElement('a');
    aLink.download = "文件名";
    aLink.href = "文件url地址";
    document.body.appendChild(aLink);
    aLink.click();
    document.body.removeChild(aLink);

1
jslang
天际的海浪 回复长不高的影子の: 用拼接字符串的方式把参数拼接到url地址中啊
大约一个月之前 回复
weixin_39518080
长不高的影子の 回复天际的海浪: 您好,我想问一下这种方式请求url,参数应该怎么传递呢?
大约一个月之前 回复
weixin_39518080
长不高的影子の 回复天际的海浪: OK 谢谢
大约 2 个月之前 回复
jslang
天际的海浪 回复长不高的影子の: 会不会自动保存要看浏览器的设置,js代码无法左右
大约 2 个月之前 回复
weixin_39518080
长不高的影子の 回复天际的海浪: 您好,这种方式down下来文件不会自动保存的本地吗?
大约 2 个月之前 回复
jslang
天际的海浪 回复lty_aaa: 那延时一下 setTimeout(function(){ ikkatuPdf(pdfArray,i); }, 500);
9 个月之前 回复
lty_aaa
lty_aaa 在IE浏览器上还是下载的是最后一个
9 个月之前 回复
lty_aaa
lty_aaa 多谢,这个在谷歌浏览器上可以下载多个,但是在IE11上还是只下载一个
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【javaweb:js前端】两个及以上的window.location.href,只执行最后一个的问题!
最近在项目中遇到一个比较恶心的问题, 项目登录界面连续用到两个window.location.href, 第一个是用来给后台赋session,第二个是用来跳转到首页。 问题出现了,第一个window.location.href不生效。即session登录到首页后session没有。我在页面debug 一步一步走,却可以运行第一个window.location.href, 也赋了session
python入门级问题: for循环打印列表,怎么总是打最后1个
错误代码 错误分析:a = []放到for循环里面去了,每循环1次,就被重置成空1次, 执行结果:[5] #斐波那契数列 def fib(n): if n<2: return 1 else: return fib(n-1)+fib(n-2) for i in range(1,5): a = [] a.append(...
循环按钮添加事件总是执行最后一个的解决办法汇总
当我想要给一组链接添加点击事件,改变当前点击的链接的字体颜色时,很快这样的代码出现了,并且是确实成功改变了当前的点击的字体的颜色。 HTML: 按钮1 按钮2 按钮3 按钮4 按钮5 按钮6 按钮7 按钮8 按钮9 JS: window.onload = function () { var aa = document.getElementsByTagNa
hibernate批量插入数据 实际数据库只插入了一条
问题环境 ssh框架、hibernate使用for循环批量插入数据 问题描述 hibernate插入三条数据 实际数据库只插入了一条数据; 控制台打印了三条插入数据 原因 hibernate 循环插入数据,只插入一条其他为更新 解决方案 session.save(demo);之后添加一下代码 session.flush(); session.clear(); 分享批量...
JS的for循环总是弹出最后一个值得解决方法
首先看一下HTML内容,现在我想得到标签内的索引和内容,你也许刷刷的写下以下代码: 但是结果却不尽人意,总是弹出“6----果敢”,比较好的解决方法有以下几种: 1、使用闭包 var els = document.getElementsByTagName("li"); for (i = 0; i < els.length; i++) { var el = els[i
微信js 上传多个照片IOS,只上传了最后一个
一开始用的each循环,android可以,执行多次wx.uploadImage,但在IOS中却只执行最后一个上传方法也许因为wx.uploadImage 有执行成功失败的回调函数这里用递归解决` function upload() { wx.uploadImage({ localId : localIds[i], success : function
循环保存在事务中为何只保存到最后一个对象
有时候我们在使用事务保存一个循环中的对象时,可能会出现在提交事务后发现只保存到了最后一个对象,代码如下:                      session = sf.openSession();      transaction = session.beginTransaction();      session.save(projectInfo);  ProjectProdu
java list循环赋值以后输出为什么全变成最后一组数据解决方法
    使用for循环给list赋值,结果发现得到的list中的元素值全都变成了最后一个元素的值,经过查资料才知道list 在add时,每次保留一个它的引用,所以在for循环外面new list的元素,最后得到的list里面全都成了最后一次的值。因此每循环一次,就要new 一次list中的元素对象。...
解决for循环中只能点击到最后一个元素的问题
有时候我们需要对一排元素进行逐一选中,比如下面一个例子中,我们想要当点击一排按钮中的某一个时,利用下面的写法,都是只能弹出最后一个元素。 &amp;lt;body&amp;gt; &amp;lt;button&amp;gt;按钮1&amp;lt;/button&amp;gt; &amp;lt;button&amp;gt;按钮2&amp;lt;/button&amp;gt; &amp;lt;button&amp;gt;按钮3&amp;lt;/button&amp;gt; &amp;lt;but
JS闭包导致循环给按钮添加事件时总是执行最后一个
今天再做需求时有一个功能是这样的,就是有不定个的按钮,且点击按钮时都需要执行一个方法(参数不一样) 那么我很自然的就想到了,循环给每个按钮添加事件和参数就好了,由于不方便上传系统代码,下面以一个简单例子来说明. 按钮1 按钮2 按钮3 按钮4 按钮5 比如现在要实现这么一个功能,在页面上点击上面的按钮1到按钮5时分别alert出
for循环绑定监听事件索引值总是最后一个
var Menu=$(".tab"); for(var i=0;i    $(".tab").eq(i).onclick=function(){          $(".tabContent").css("display","none");          $(".tabContent").eq(i).css("display","block");           }
在for循环里用list.append()方法, 最终的list只保留最后一次循环的结果的解决和思考
交代下写代码的背景:测试的项目需要大量造数据,想用python脚本实现:举个栗子: 我需要在L列表中,插入n个字典,第一个参数需要变化,第二个参数不变。 我的想法:①让序列号递增;②赋值:value = 递增的序列,产生新的字典;③L列表添加新的字典。 于是,码代码: l = [{'序列号':123456,'二':"百度云"}] start = {'序列号':123456,'二':"百度...
js for 循环中的值为最后一个值
正常情况 for (var i=0;i&amp;lt;10;i++){ console.log(i); } image.png 在看看容易让人产生疑惑的情况 var a = []; for (var i = 0; i &amp;lt; 10; i++) { // 作用域a a[i] = function () { // 作用域b ...
list只能循环最后一条数据,是怎么回事
Video video = new Video(); 把这个放到 while(rs.next()){ Video video = new Video(); video.setVideoId(rs.getInt("videoId")); video.setVideoName(rs.getString("videoName")); video.setVideoDesc
关于for循环总是返回最后一个值问题
for(var i = 0;i&lt;10;i++){ console.log(i); //打印 0-9 setTimeout(function(){ console.log(i); //2秒之后打印10个10 },2000) } console.log(i); //打印1个10 第一个输出:因为在for循环中,所以会循环打印10次,0-9. 第二个输出:因为在函数中,有两秒...
js中for循环获取到的值都是最后一个解决方法
有5个按钮:&amp;lt;div&amp;gt; &amp;lt;button&amp;gt;按钮1&amp;lt;/button&amp;gt; &amp;lt;button&amp;gt;按钮2&amp;lt;/button&amp;gt; &amp;lt;button&amp;gt;按钮3&amp;lt;/button&amp;gt; &amp;lt;button&amp;gt;按钮4&amp;lt;/button&amp;gt;
List集合循环存储对象时,导致循环后集合中全部数据都是最后一条的情况
在处理数据时,List集合循环存储对象时,发现循环后集合中全部数据都是最后一条的情况。 code: ... AlarmInfo ai = new AlarmInfo(); //创建对象 List&amp;amp;amp;lt;AlarmInfo&amp;amp;amp;gt; returnResult = new ArrayList&amp;amp;amp;lt;&amp;amp;amp;gt;(); for (int i = 0; i &amp;amp;amp;lt; num; i++)
一个方法连续调用多次,但方法体里面的代码只保证最后一次的执行,之前连续调用的方法体都不执行
.
jquery循环绑定事件有一个坑----总是绑定最后一个元素
1. 先看一段用jquery循环绑定事件的代码,要求是对每个元素都作事件绑定。结果在绑定事件中只能得到最后一个值,如下代码片段1所示: var checkMutipleChoices=[{questionId:7547,maxNum:2},{questionId:7553,maxNum:3}]; for(var i=0;i<checkMutipleChoices.length;i++){
关于在for循环里调用ajax时只能取到最后一个数据的bug的解决方法
ajax异步和for循环一起用时的bug解决方法
关于for循环中引用同一个对象,列如map,导致添加的数据永远是最后一个
今天开发遇到的问题,想用map装数据,只是在for循环之外new了一个map,想做for中用,改变里面的值,放入list中,结果导致数据都是一样的,最后只有每次新new一个对象   代码:   for (int i=0;i&amp;lt;collection.size();i++) {                                       //注意:这里没有采用同一个map对象...
js的for循环中使用回调函数,获取到的值总是最后一个值?
解决办法:自执行函数传递参数 举例:注:setTimeout()函数即为回调函数 var dataSet = ["首页", "博客", "下载"] for (var i = 0; i &lt; dataSet.length; i++) { var item = dataSet[i]; setTimeout(function () { con...
java中for循环中为了去掉最后一个字符的优化
对于拼接字符串,以某个符号作为分隔符的实现,最后一个分隔符一般都比较郁闷了 我经常想到的做法有两种: 第一种:在循环中判断是不是最后一个,如果是最后一个不加分隔 第二种:在循环结束后将最后一个字符substring掉 在我进行优化for循环时,我将数组或集合对象的size或length的值作为一个int,然后循环中写int,而不再调用对象的size方法或length属性了,代码如下
多个onclick在一起只执行最后一个的问题解,其它是事件处理引发的问题 (JavaScript的监听事件函数attachEvent和addEventListener)
JavaScript的监听事件函数attachEvent和addEventListener使用方法 第一 :当同一个对象使用.onclick的写法触发多个方法的时候,后一个方法会把前一个方法覆盖掉,也就 是说,在对象的onclick事件发生时,只会执行最后绑定的方法。而是用事件监听则不会有覆盖的现象, 每个绑定的事件都会被执行。但是IE家族先执行后绑定的方法,也就是逆绑定
python unittest 只跑某个(某些)测试
# -*- coding: utf-8 -*- import unittest class MyTest(unittest.TestCase): def test_method_a(self): pass def test_method_b(self): pass def test_method_c(sel...
ajax多次请求,只执行最后一次的方法
ajax多次请求,只执行最后一次的方法有时候点击按钮进行异步请求数据的时候可能网络差,用户会点击很多次,或者页面有很多相同的按钮,参数不同,但是调用的ajax相同,只想得到最后一次结果我的思路是用闭包记录执行次数,并同时记录发起ajax的次数,等数据返回的时候比较两次次数的结果,渲染最后一次数据多说无益,上代码&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;&amp;...
js在for循环中使用push(obj[i])只拿到的是最后一个的解决方案
var objArr=['1','2','3']; var objArr2=[]; for(var i=0;i&lt;objArr.length;i++){ objArr2.push(objArr[i]); }//objArr2=['3','3','3']; 上面那种情况为何会出现?原因是因为push函数里面有异步操作,所以会导致for执行完再执行push操作,你想想,for执行完了,...
matlab 函数循环 每次只做一次,但是保留顺序
function function(ut,t,symbolList) persistent indx if ~exist('indx','var') || isempty(indx)     indx = 1; else     indx = indx+1; end quoteStr = @(q,v) [num2str(q,'%8.2f')
vue中v-for循环时只处理事件触发项的内容(仅一项)
关于怎样处理vue中v-for循环时对循环内容中单独的一项的事件处理有如下方案:(1)获取v-for循环内容中的下标值(val为navContent中的内容,index为下标)        &amp;lt;p v-for=&quot;(val,index) in navContent&quot; class=&quot;nav&quot;&amp;gt;            {{val}} --{{index}}     &amp;lt;i ...
在List的add方法添加对象时都是最后的一条记录的重复
      在做项目的时候,遇到过一个很容易忽略的问题。就是自己感觉逻辑明明没错的,但是为什么输出结果跟自己想象的有点出入呢?比如下面的代码:(先自己考虑会输出什么,再试试代码会输出什么)     public class ListTest { public static void main(String[] arg0){ List&amp;lt;User&amp;gt; userList=ne...
for循环去掉最后一个逗号
复选框利用for循环获取多个值,最后一个值后面有逗号,将其去掉var $age=$(".Age-Gender input[name='age']:checked"); age=""; for(var i=0;i<$age.length;i++){
JS for循环结束后i的值
for(var i = 0; i < 10; i++){ //todo: } console.log(i); i的值为10. 起初并没有仔细想, 认为循环结束后因为是i++, 在结束后还要加一次, 所以是10. 但是, 打印的i在循环体外边. "局部变量"在外边怎么能打印? 事实上, for循环并不是函数体.  var声明的是全局变量.或者作用域上一级function
解决for循环总是输出最后一个数组的值的办法并且实现不同位置的li加载不同的img地址图片
<ul id="list"> <li>按钮1<img src=""></li> <li>按钮2<img src=""></li> <li>按钮3<img src=""></li> <li>按钮4<img src=""></li> <li>按钮5<img src=""></li>
循环拼装String字符串去掉最后一个字符的方法
在做各种字符串封装的时候,不免用循环拼装字符串,如下: [code=&quot;java&quot;] String [] idArr = {&quot;tom&quot;,&quot;cat&quot;,&quot;jim&quot;,&quot;jone&quot;}; StringBuffer sBuffer = new StringBuffer(); for(int i = 0; i &lt; idArr.length; i++){ sBuffer.append(idArr[i])...
js $.each()遍历 与 获取数组最后一条数据 \和比较两个数组key值是否相等
获取json对象的key, value值 遍历data Var data={1598569D23F84F4486DE687D0E3321DD: “研发部”}; $.each(data, founction( i , name){ console.log(i) consle.log(name) 结果 i 等于(1598569D23F84F4486DE687D0E3321DD) 结果 name等于...
序列截取应用:python3中字符串通过循环每次把位于最后的一个字符砍掉
有一个字符串,我们想通过一个循环按照这样的形式显示它:每次都把位于最后的一个字符砍掉,下面是实现这个要求的一种方法: s = 'abcde' for i in range(-1, -len(s), -1): print(s[:i]) abcd abc ab a 可是,该如何在第一次迭代的时候显示整个字符串呢? 我们的方案是使用另一个小技巧:用 None 作为索引值,这样一来
python for 循环值 保留问题
m=0 for i in xrange(5): for j in xrange(4): print j for k in xrange(3): m=m+1 print k print '-----------------' print m C:\Python27\python.exe C:/Users/TL...
for循环下,加入点击事件显示for的i值却总是获取最后的值
需求: 新增几个按钮,点击的时候显示对应的序号。 普通做法: for(var i=0;i&amp;lt;5;i++){ var input = document.createElement(&quot;input&quot;); input.value = &quot;显示&quot;; input.type = &quot;button&quot;; input.onclick=functi...
【集合】实际开发中,获得到的list为重复的最后一条数据问题解决
在开发中循环把对象中的值赋给list,最后取得list进行返回。老是会出现获得的list是重复的值,并且值为最后一个对象。 这就是开发中没有声明好对象和list的位置。都应该在外面声明list和对象。 注意:对象要在循环里重新初始化一次,否则最后一个数据会把前面的数据全部覆盖掉。注意第9行 例如:  QueryInformationResponseVo returnVo = null; ...
vue循环数据 v-for / v-if最后一条
html部分 &amp;lt;ul class=&quot;mydemo&quot;&amp;gt; &amp;lt;li v-for=&quot;item in listdata&quot;&amp;gt; &amp;lt;div class=&quot;list-img&quot;&amp;gt;{{item.title}}&amp;lt;/div&amp;gt; &amp;lt;div class=&quot;tit&quot;&amp;gt;{{item.
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库建立一个课程表 建一个课程表的数据库

相似问题

2
循环window.location.href下载文件却只执行最后一个,每次都跑到了,但是只下载了循环的最后一个
1
多个div浮窗的只有一个能移动的问题
2
问一个javascrip的问题,关于frame的做法,思路不是很明确的问题
3
select2 用js动态循环添加 没有任何渲染 只有第一个默认有渲染
12
javascpt怎么将两个数组的结果相加,得到一个新的数组呢,非要循环实现么?不用循环怎么写?
3
chessboard.js 下载后怎样使用
5
做了个网页音乐平台,可以拖拉滚动条滚动的,但是播放条的位置有点迷
2
虽然点击一行中其他位置可以选中复选框,但是原来的复选框点不中了
8
vue-cli项目后台传来的数据 img的src,但是访问不到图片地址报404
2
求大佬帮我看看一个关于select 下拉框的恶心问题
3
网上看到的js用正则解析Url参数,请问我想自己写一个url测试的话,应该怎么把url传入这个方法
6
C#webbrowser 多个form表单 选择其中一个提交 来个高手
4
vue--语音播放如何控制在播放语音时,点击另外一个语音暂停现播放的.
12
如何实现textarea中输入@在当前文本的右下方出现一个div,里面选择人名
4
请教一个Vue的问题,求解呀!!!
11
如何实现textarea中输入@在右下方出现一个div
2
新手求教一个Vux框架的问题!!!
1
data-index 獲取數據下標 但是點了事件該怎麼往下一個下標走
16
关于js的几个小问题,有关数组,循环
8
checkbox选中元素遍历循环,alert 和layer.msg问题