预期的功能是:点击按钮时,下载PPT (这来自外部站点的REST调用),同时下载PPT时,页面中应显示加载gif,并应在PPT下载后停止。我尝试过setTimeout()函数,但它在这种情况下似乎不能正常工作。可以通过jQuery或javascript实现吗?任何帮助都将不胜感激!
发布于 2021-01-05 17:38:00
我的测试代码:
<img src="/_layouts/15/images/loading16.GIF" style="display: none;" id="img">
<input type="button" value="download" id="download">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/gitbrent/sprestlib@1.8.0/dist/sprestlib.min.js"></script>
<script>
$("#download").click(function(){
$("#img").css("display","");
sprLib.file('Doc/Presentation.pptx').get()
.then(function (blob) {
var url = (window.URL || window.webkitURL).createObjectURL(blob);
var link = document.createElement("a");
link.setAttribute("href", url);
link.setAttribute("download", _fileName);
link.style = "visibility:hidden";
document.body.appendChild(link);
link.click();
setTimeout(function () { document.body.removeChild(link); }, 500);
}).then(function(){
$("#img").css("display","none");
});
})
</script>测试结果:

https://stackoverflow.com/questions/65561977
复制相似问题