使用当前页面的location去做下载是不对的,你可以使用iframe。
成都创新互联是一家以网络技术公司,为中小企业提供网站维护、成都网站设计、网站建设、网站备案、服务器租用、主机域名、软件开发、小程序制作等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站沟通电话:13518219792
$('.btn-download').click(function(){
var s = jQuery('#grid').jqGrid('getGridParam','selarrrow');
url = $(this).attr('action');
$each(s, function(k, v){
$('body').append('iframe src="' + url + '?id=' + v + '" style="position:absolute;left:-1000px;top:-1000px;"/iframe');
});
});
使用隐藏的iframe去做下载,隐藏iframe最好使用绝对定位将它移出可视区域的方法,而不是简单的display:none,因为在某些浏览器下,display:none的iframe不会执行。
1、定义一个时间延迟事件方法体。
2、将ajax装入到函数体内,使用setTimeout延迟执行方法
script
function doajax(){//事先写好方法体,方便调用
$.ajax(
url:url,
data:datas,
successtion:function(result){
alert(result);
}
);
}
$(function(){
var timer;
clearTimeout(timer);
setTimeout(doajax(), 1000);//过1s执行方法体。
});
/script
你上面那样写只会造成死循环。
// 手打,可能存在一些代码写错。
// 最简单的
setTimeout(function(){
document.getElementById("buyNowAddCart").click()
setTimeout(function(){
document.getElementById("proPopSubmit").click();
setTimeout(function(){
document.getElementById("submit-btn").click();
},1*1000)
},1*1000)
},1*1000) // 1秒
// 进阶一点,把setTimeout拆分出来,方便控制,和代码阅读。
function openTimeout(callback,second){
// 判断cb有没有,实际上完整的代码是判断是否是一个function,这里简单就判断是否为空。
callback setTimeout(callback,second*1000);
}
openTimeout(function(){
document.getElementById("buyNowAddCart").click();
openTimeout(function(){
document.getElementById("proPopSubmit").click();
openTimeout(function(){document.getElementById("submit-btn").click();},1);
}),1;
},1)
// 如果一直要循环,那么可以把这些代码放在一个方法里
function fn(){
openTimeout(function(){
document.getElementById("buyNowAddCart").click();
openTimeout(function(){
document.getElementById("proPopSubmit").click();
openTimeout(function(){
document.getElementById("submit-btn").click();
openTimeout(fn,1); // 当最后一个click完成,又开始加个定时器调用fn方法从而循环执行三个click
},1);
},1);
},1)
}
fn(); // 开始执行三个click,每过一秒
jquery 可以执行延时函数来决定某个函数:
在jQuery1.4中性增加的,.delay()方法允许我们将队列中的函数延时执行。它既可以推迟动画队列中函数的执行,也可以用于自定义队列。只有队列中连续的事件会延迟; 例如,不带参数的 .show() 或者 .hide()不会延迟,因为他们没有使用效果队列
延时时间(duration参数)是以毫秒为单位的,数值越大,动画越慢,不是越快。字符串 'fast' 和 'slow' 分别代表200和600毫秒的延时。
举个例子:
可以在 div id="foo" 的 .slideUp() 和 .fadeIn() 动画之间设置800毫秒的延时:
$('#foo').slideUp(300).delay(800).fadeIn(400);
延迟执行可以使用setTimeout函数:
setTimeout(function(){
//这里写时间到后执行的代码
$("#left").click();
}, 10000);
单位是毫秒,如要设置10s后执行,这里写10000,以此类推。
dylay()方法的格式如下:
delay(duration,[queueName])
这个方法的功能是设置一个延时值来推迟后续队列中动画的执行,其中参数duration为延时的时间值,单位是毫秒,可选参数[queueName]表示队列名词,即动画队列.