单击多个 HRREF 下载链接

click multiple href download links

本文关键字:下载 链接 HRREF 单击      更新时间:2023-09-26
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;
    }
}
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); 
    }
}

使用上面的代码,目的是将所有视频链接下载到一个页面上。虽然控制台日志包含所有链接,但我只想要一个链接真正被下载。没有错误或警告,我该如何实现?也尝试过没有窗口,位置线,没有运气...

现在解决了以下问题:

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

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

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