簡體   English   中英

在Firefox擴展中使用JavaScript和jQuery從頁面下載多個文件

[英]Download multiple files from a page using javascript and jQuery in firefox extension

我開發了Firefox擴展程序,通過在具有不同鏈接的不同錨點上觸發來從頁面下載多個文件。

我在jQuery的javascript中所做的工作:

var $tr = $("tr");
var downloadLinks = [];

$.each($tr, function() {
    var tds = $(this).find("td");

    var name = tds.eq(1).find("span");
    var text = name.text();

    if (text.match(/\.Update\./gi)) {
        return true;
    }

    downloadLinks.push(tds.eq(2).find("a"));
});


if (downloadLinks.length > 0 && confirm("Found " + downloadLinks.length + " items to be downloaded. Download them now ?")) {

    for (var i = 0; i < downloadLinks.length; i++) {
        var $a = downloadLinks[i];
        var url = $a.prop("href");

        if (url.indexOf("http") < 0) {
            url = windows.location.protocol + "//" + windows.location.host + "/" + $a.prop("href").trim('/');
        }

        $a.prop("href", url);
        setTimeout(function() {
            $a.get(0).click();
        }, 800 * (i + 1));
    }
}

問題是只有最后一項下載了downloadLinks.length次。 如果長度為20,則最后一項下載20次。

我的錯誤在哪里?

$ a是這里的問題,當觸發超時時,$ a等於循環讀取的最后一個對象。

嘗試:

setTimeout(function(j) {
            var $a = downloadLinks[j];
            $a.get(0).click();
        }, 800 * (i + 1), i);

這應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM