2017-06-02 428 views
0

我發現了一個類似的問題,貼一個老話題,但鑑於那裏的答案沒有工作,自動下載文件。我正在使用Mozilla Firefox瀏覽器(最新版本)進行測試。的Javascript:當鏈接「點擊」

我有imageLinks一個數組,並希望自動觸發下載而無需用戶交互。我的代碼如下:

for (var i=0; i<imageLinks.length; i++) { 

if (imageLinks[i]) { 

    console.log(imageLinks[i]); 
    var link = document.createElement('a'); 
    link.href = imageLinks[i]; 
    link.download = 'imagefile'; 
    link.click(); 
    } 
} 

但是,在Forefox中,圖像是否在新標籤中打開?

+0

嗯..等待你有什麼再做?我會假設沒有瀏覽器讓你開始下載沒有用戶交互..因爲你知道安全。 – Olof

+0

我試圖做到這一點:https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_a_download,而無需用戶點擊每個文件。一個按鈕將觸發畫廊文件的下載。 –

+0

我並不積極,但我認爲這個行動不能自動化。更好的做法是製作整個畫廊的zip文件。上帝,我希望我是正確的,它不能被自動化...... – Olof

回答

0

我偶然發現了這個片段在一個論壇上,似乎這樣的伎倆。但請注意,瀏覽器仍然會詢問用戶他/她是否想要保存文件以及在哪裏。這個查詢可以被接受爲「自動對這種類型的文件進行此操作」,並且從那時起,下載將自動保存到本地驅動器。

function simulateClick() { 
    var evt = document.createEvent("MouseEvents"); 
    evt.initMouseEvent("click", true, true, window, 
     0, 0, 0, 0, 0, false, false, false, false, 0, null); 
    var a = document.getElementById('myLink'); 
    a.dispatchEvent(evt); 
    } 

該功能可以在帶圖像鏈接的陣列上調用,用戶選擇的圖像可以保存到驅動器。我對這個解決方案很滿意,因爲它比用用戶選擇的圖像的ZIP文件更容易實現。圖像庫很小,所以下載應該初始化得相當快。