您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Html5頁面如何實現下載文件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
需求描述
接到的原始需求是這樣的,有一個H5頁面,頁面中有個“點擊下載”的按鈕,點擊之后,完成下載特定的apk。
大概是下面這樣的?:
需求分析
接到需求的時候我偷樂了一下,這個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();
以上的代碼也可以實現下載apk的需求。
關于“Html5頁面如何實現下載文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。