2013-08-23 223 views
0
function clickLink(link) {  
    var cancelled = false; 
if (document.createEvent) { 
    var event = document.createEvent("MouseEvents"); 
    event.initMouseEvent("click", true, true, window, 
     0, 0, 0, 0, 0, 
     false, false, false, false, 
     0, null); 
    cancelled = !link.dispatchEvent(event); 
} 
else if (link.fireEvent) { 
    cancelled = !link.fireEvent("onclick"); 
} 

if (!cancelled) { 
    window.location = link.href; 
} 

}点击多个HREF下载链接

for (var i = 0; i < links.length; i++) { var x=links[i]; if(x.href.indexOf('download.mp4') > -1) { console.log(x.href); x.click(); }} 

for (var i = 0; i < links.length; i++) { var x=links[i]; if(x.href.indexOf('download.mp4') > -1) { console.log(x.href); clickLink(x); }} 

有了上面的代码目的是下载一个网页上的所有视频链接。尽管控制台日志包含我想要的所有链接,但只有一个链接真正被下载。 没有错误或警告,我怎么能做到这一点? 还试图未经window.location的线,没有运气...

下面摸索出现:

function JustclickLink(link) {  
    var cancelled = false; 
if (document.createEvent) { 
    var event = document.createEvent("MouseEvents"); 
    event.initMouseEvent("click", true, true, window, 
     0, 0, 0, 0, 0, 
     false, false, false, false, 
     0, null); 
    cancelled = !link.dispatchEvent(event); 
} 
else if (link.fireEvent) { 
    cancelled = !link.fireEvent("onclick"); 
} 

if (!cancelled) { 
window.open(link.href,'_blank');   
} 

} 为(VAR I = 0;我< links.length;我++){VAR X =链接[I]; if(x.href.indexOf('download.mp4')> -1){console.log(x.href); JustclickLink(X); }}

回答

0

这里是一个jQuery的替代你所寻求的。 Window.open应该用于多次下载,因为window.location只会在代码运行中触发一次。

$('#foo').on('click', function() { 
window.open($(this).attr("href"),'_blank'); 
}); 
$('#foo').trigger('click');