使用當前頁面的location去做下載是不對的,你可以使用iframe。
成都創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護、成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)站備案、服務(wù)器租用、主機域名、軟件開發(fā)、小程序制作等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站溝通電話: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最好使用絕對定位將它移出可視區(qū)域的方法,而不是簡單的display:none,因為在某些瀏覽器下,display:none的iframe不會執(zhí)行。
1、定義一個時間延遲事件方法體。
2、將ajax裝入到函數(shù)體內(nèi),使用setTimeout延遲執(zhí)行方法
script
function doajax(){//事先寫好方法體,方便調(diào)用
$.ajax(
url:url,
data:datas,
successtion:function(result){
alert(result);
}
);
}
$(function(){
var timer;
clearTimeout(timer);
setTimeout(doajax(), 1000);//過1s執(zhí)行方法體。
});
/script
你上面那樣寫只會造成死循環(huán)。
//?手打,可能存在一些代碼寫錯。
//?最簡單的
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)
//?如果一直要循環(huán),那么可以把這些代碼放在一個方法里
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完成,又開始加個定時器調(diào)用fn方法從而循環(huán)執(zhí)行三個click
},1);
},1);
},1)
}
fn();?//?開始執(zhí)行三個click,每過一秒
jquery 可以執(zhí)行延時函數(shù)來決定某個函數(shù):
在jQuery1.4中性增加的,.delay()方法允許我們將隊列中的函數(shù)延時執(zhí)行。它既可以推遲動畫隊列中函數(shù)的執(zhí)行,也可以用于自定義隊列。只有隊列中連續(xù)的事件會延遲; 例如,不帶參數(shù)的 .show() 或者 .hide()不會延遲,因為他們沒有使用效果隊列
延時時間(duration參數(shù))是以毫秒為單位的,數(shù)值越大,動畫越慢,不是越快。字符串 'fast' 和 'slow' 分別代表200和600毫秒的延時。
舉個例子:
可以在 div id="foo" 的 .slideUp() 和 .fadeIn() 動畫之間設(shè)置800毫秒的延時:
$('#foo').slideUp(300).delay(800).fadeIn(400);
延遲執(zhí)行可以使用setTimeout函數(shù):
setTimeout(function(){
//這里寫時間到后執(zhí)行的代碼
$("#left").click();
},?10000);
單位是毫秒,如要設(shè)置10s后執(zhí)行,這里寫10000,以此類推。
dylay()方法的格式如下:
delay(duration,[queueName])
這個方法的功能是設(shè)置一個延時值來推遲后續(xù)隊列中動畫的執(zhí)行,其中參數(shù)duration為延時的時間值,單位是毫秒,可選參數(shù)[queueName]表示隊列名詞,即動畫隊列.