亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查Chrome中的文件下載是否完成?

如何檢查Chrome中的文件下載是否完成?

慕無忌1623718 2021-04-28 13:42:54
當用戶單擊下載按鈕/鏈接時,頁面上將顯示加載屏幕。下載過程完成后,我在此按鈕上使用onblur事件隱藏我的加載屏幕。它可以在任何瀏覽器上正常運行,但不能在谷歌瀏覽器上運行。我可以在Chrome瀏覽器中使用任何事件監聽器或其他簡單方法嗎?關聯:<a href="/resources/foo" class="show-ls" onblur="hideLS()">Download</a>show-ls函數僅顯示加載屏幕:$('.show-ls').click(function () {  $('#loading-screen').show();});加載屏幕是正文中的div元素:<div id="loading-screen" class="loading-screen" style=""></div>.loading-screen {  background: rgba(255, 255, 255, 0.6) url('/images/loadingscreen.gif') no-repeat fixed center center;  width: 100%;  height: 100%;  position: fixed;}hideLS函數只是隱藏加載屏幕:hideLS= function () {  var loadingScreen = $('div.loading-screen');  if (loadingScreen.length > 0)    loadingScreen.hide();};下載過程可以,加載屏幕也可以。問題僅在于在Chrome中完成文件下載后隱藏加載屏幕。
查看完整描述

2 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

blur事件只是一個脆弱的解決方法,可能無法在瀏覽器中運行。

blur事件意味著某件事正在失去焦點??赡苁荈irefox瀏覽器(及其他)確實確實模糊了您單擊的鏈接,但其他任何東西也可能模糊了該鏈接(更改選項卡,單擊加載屏幕等)。這可能是您不想要的。

而且由于HTTP是一種無狀態協議,因此在沒有服務器幫助的情況下,我們無法知道客戶端何時完成此操作。而且您不能依靠JS來檢測到此錯誤,因為文件下載是在“其他選項卡”中進行的,而您無法訪問該文件。

我可以想象的唯一解決方案(看起來也是如此):當下載開始時,啟動一個JS間隔,該間隔定期(例如每500毫秒左右)檢查服務器的下載狀態。在服務器端,您必須在啟動時向用戶標識下載,并在詢問時將狀態返回給客戶端。當然,這如何工作取決于您使用的服務器環境和編程語言。我知道,您可以使其在PHP中運行,但我不了解所有其他語言。

順便說一句:我將“加載屏幕”稱為“加載指示器”,因為加載屏幕(或啟動屏幕)是在軟件加載之前(至少在我的計算機/大腦上)顯示一次的圖片。


查看完整回答
反對 回復 2021-05-13
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

如果您擁有Google帳戶,則只需按Ctrl + J或轉到chrome:// downloads /


查看完整回答
反對 回復 2021-05-13
  • 2 回答
  • 0 關注
  • 833 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號