您好,登錄后才能下訂單哦!
這篇文章主要講解了“在html5中怎么下載文件”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“在html5中怎么下載文件”吧!
需求分析
接到需求的時候我偷樂了一下,這個H5頁面最大的優點是不在微信中使用(微信好坑,各種限制,基本上從微信瀏覽器里面實現直接下載apk是不太可能的),如果是在平常的瀏覽器的話,就簡單多了。
功能實現
于是我想到了第一種,點擊下載按鈕的時候改變 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';
拿在瀏覽器里面試了下,多個安卓機型都可以走通,然后我美滋滋得交付了任務,收拾收拾東西回家。
然后…………
截圖中所說的空白頁是因為我改變href為apk的下載鏈接,網頁打開的時候會停留在一個空白頁,然后一般手機的狀態欄上會出現下載apk的進度條。
既然不想出現空白頁面的話,那不直接打開一個頁面而改成在當前頁打開就可以了。
這時候想到 iframe,借助 iframe可以在原頁面打開一個頁面。
方法二:
關鍵代碼:
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的話,既可以實現下載,又可以不重新打開頁面,并且,對原頁面的布局不會產生任何影響,最后我也是采取這種方案的。
方法三
第三種方法是偶然學到的,既然使用iframe可以,那使用form一定也是可以的,form的action也可以發請求。
于是改寫了下第二種方法:
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中怎么下載文件”的內容了,經過本文的學習后,相信大家對在html5中怎么下載文件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。