我正在致力於Firefox的擴展,現在用JavaScript編寫。本質上,當將鼠標懸停在圖像的縮略圖上時(點擊該圖像將您帶到具有完整圖像的網頁),該擴展程序將查找完整圖像的URL並嘗試通過按鍵進行下載。 (在這個例子中是「D」)。我將使用的文件通常是.jpgs和.png,但是.swfs和.mp3s也可能存在。在這一點上,我只是想找到前兩個文件類型的工作。通過Firefox使用Javascript下載圖片?
我現在使用的代碼只是
function ExtendedDownload(image_src) {
var a = document.createElement('a');
document.body.appendChild(a);
a.download = image_src.split('/').pop().split('?')[0];
a.href = image_src;
a.click();
}
- image_src是URL的形象。
- a.download是從完整URL解析的圖像的文件名。
之前在JavaScript文件中,當它看到一個有效的縮略圖被光標懸停時,它會等待按鍵。這部分工作得很好。下載是我遇到的麻煩。
當加載到鍍鉻,該擴建工程完全按預期。然而,在Firefox(v49.0.2)中,它只是顯示圖像(類似於在地址欄中粘貼圖像的鏈接並按下Enter鍵)。這不是預期的效果。
我測試過的一個解決方案是通過JavaScript將圖像轉換爲base64,並試圖下載,這在理論上是有效的,而且我測試過它會將base64轉換爲小的.png ..但是我試圖下載的文件導致base64字符串的大小超過兆字節,並且發送瀏覽器掛起,所以這不是一個有效的選項。
我在stackexchange上遇到的類似問題的每個解決方案都讓我回到了這個位置,然而,「下載」圖像只是在瀏覽器中打開它。
任何建議,將不勝感激。
編輯:我遇到的問題肯定是基於這樣一個事實,即我使用此擴展的網頁和圖像所在的網頁位於不同的域。 @Mayank Pandeyz的解決方案讓我相信這一點,因爲當我嘗試在頁面本身的相同域上進行重新加載和映像時,它就像預期的那樣工作。我有什麼潛力解決這樣的問題?
聽起來像是一個本地系統配置。也許你有像https://addons.mozilla.org/en-US/firefox/addon/open-in-browser/安裝的東西? – Hailwood