【发布时间】:2019-09-15 19:09:27
【问题描述】:
当用户点击下载按钮/链接时,页面上会出现加载屏幕。下载过程完成后,我在此按钮上使用 onblur 事件来隐藏我的加载屏幕。它可以在任何浏览器中正常运行,但不能在 Google Chrome 中运行。
是否有任何事件监听器或其他简单方法可用于 Chrome?
链接:
<a href="/resources/foo" class="show-ls" onblur="hideLS()">Download</a>
show-ls 函数只显示加载屏幕:
$('.show-ls').click(function () {
$('#loading-screen').show();
});
加载屏幕是body中的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 中完成下载文件后隐藏加载屏幕。
【问题讨论】:
-
如果没有...代码,我们现在应该如何处理您的代码?
-
@yunzen 我现在加了一些代码
-
那些链接/下载是什么?只是指向 URL 的普通锚链接?还是那些 AJAX 链接?您是否捕获了
window.onblur事件?要回答所有这些问题,您可能需要提供一个工作演示的链接 -
/resources/foo 只是链接到我的 spring 控制器,它返回 byte[]。 Onblur 事件在其他浏览器中下载完成后会自动运行,在 Chrome 中我必须单击网页上的任意位置才能激活模糊侦听器。
-
有趣。我不知道。您确定没有任何您不知道的中间件(vie 插件、库等)
标签: javascript html google-chrome browser