所以我有一個包含類似于以下元素的網頁
<a href="docs/some_file.xlsx" download="some_file.xlsx" class="btn btn-primary">Download!</a>
現在我想通過電子郵件向一些客戶發送一個超鏈接,這樣他們就可以訪問網頁,同時下載檔案而無需點擊它。通過這種方式,他們獲取檔案,我確保他們看到包含更多資訊的網頁。
到目前為止,我想過直接從瀏覽器右鍵單擊并復制指向該按鈕的鏈接,但是如果我從 ab 電子郵件中單擊該超鏈接,則該超鏈接只會下載檔案,并且我希望瀏覽器彈出并顯示該按鈕所在的著陸頁和資訊是。任何的想法?
順便說一句,該網頁是完全靜態的,因此沒有運行 php。只能使用 HTML 和 javascript 來配置網頁
uj5u.com熱心網友回復:
您可以通過觸發具有屬性click()的<a>標記來使用JavaScript 觸發檔案下載download。像這樣的東西:
const $link = document.createElement('a');
$link.href = 'docs/some_file.xlsx';
$link.download = 'some_file.xlsx';
$link.click();
但是請記住,瀏覽器可能會嘗試限制自動檔案下載,以防止網站做一些狡猾的事情。當一個站點嘗試下載多個檔案時,我特別看到了這一點,所以我認為您只需下載一個檔案就可以了。
通常,解決此問題的最佳方法是確保您僅在回應用戶輸入(例如單擊)時執行此操作,但這聽起來并不適用于您在此處尋找的解決方案。
uj5u.com熱心網友回復:
您可以做什么 - 設定某個引數,例如:https : //example.com/?autodownload=1
然后添加一段 javascript 立即或在一段時間后自動下載檔案。就像是:
document.addEventListener("DOMContentLoaded", function(event) {
if (window.location.href.indexOf("autodownload") > -1)
setTimeout(function(){
window.open("https://example.com/docs/some_file.xlsx");
}, 3000); //your timeout in miliseconds
}
});
當然,如果瀏覽器阻止打開新視窗,此解決方案將不起作用。這種方法的第二種可能性是通過單擊錨點本身來替換 window.open 函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343824.html
標籤:javascript html 下载
