溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在html5中怎么下載文件

發(fā)布時間:2022-01-20 15:33:53 來源:億速云 閱讀:284 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“在html5中怎么下載文件”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“在html5中怎么下載文件”吧!

需求分析

接到需求的時候我偷樂了一下,這個H5頁面最大的優(yōu)點是不在微信中使用(微信好坑,各種限制,基本上從微信瀏覽器里面實現(xiàn)直接下載apk是不太可能的),如果是在平常的瀏覽器的話,就簡單多了。

功能實現(xiàn)

于是我想到了第一種,點擊下載按鈕的時候改變 location.href。

方法一:

// 我隨便找了個apk的下載鏈接舉個例子
window.location.href = 'http://imtt.dd.qq.com/16891/26747DD8B125A8479AD0C9D22CA47BC9.apk?fsname=com.snda.wifilocating_4.2.91_3211.apk&csr=1bbd';

拿在瀏覽器里面試了下,多個安卓機型都可以走通,然后我美滋滋得交付了任務(wù),收拾收拾東西回家。

然后…………

在html5中怎么下載文件

截圖中所說的空白頁是因為我改變href為apk的下載鏈接,網(wǎng)頁打開的時候會停留在一個空白頁,然后一般手機的狀態(tài)欄上會出現(xiàn)下載apk的進(jìn)度條。

既然不想出現(xiàn)空白頁面的話,那不直接打開一個頁面而改成在當(dāng)前頁打開就可以了。

這時候想到 iframe,借助 iframe可以在原頁面打開一個頁面。

方法二:

關(guān)鍵代碼:

var src = 'http://imtt.dd.qq.com/16891/26747DD8B125A8479AD0C9D22CA47BC9.apk?fsname=com.snda.wifilocating_4.2.91_3211.apk&csr=1bbd';
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.src = "javascript: '<script>location.href="" + src + ""</script>'";
document.getElementsByTagName('body')[0].appendChild(iframe);

使用iframe的話,既可以實現(xiàn)下載,又可以不重新打開頁面,并且,對原頁面的布局不會產(chǎn)生任何影響,最后我也是采取這種方案的。

方法三

第三種方法是偶然學(xué)到的,既然使用iframe可以,那使用form一定也是可以的,form的action也可以發(fā)請求。
于是改寫了下第二種方法:

var src = 'http://imtt.dd.qq.com/16891/26747DD8B125A8479AD0C9D22CA47BC9.apk?fsname=com.snda.wifilocating_4.2.91_3211.apk&csr=1bbd';
var form = document.createElement('form');
form.action = src;
document.getElementsByTagName('body')[0].appendChild(form);
form.submit();

感謝各位的閱讀,以上就是“在html5中怎么下載文件”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對在html5中怎么下載文件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI