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;
    }
}

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); 
    }
}

上記のコードの目的は、すべてのビデオ リンクを 1 つのページにダウンロードすることでした。コンソール ログにはすべてのリンクが含まれていますが、実際にダウンロードされるリンクは 1 つだけです。エラーや警告はありません。どうすればこれを達成できますか? また、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');         
    }
}
   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); 
    }
}
4

1 に答える 1