使用Javascript下载文件后更改元素
Change element after downloading a file with Javascript
我的页面上有一个按钮,可以将当前页面位置设置为在服务器上生成PDF的页面。因为生成和发送文件需要几秒钟的时间,所以我想通知用户他们的点击已经收到并正在处理,所以我在下载过程中添加了一个微调器。
$("#download-pdf-button").click(function() {
// some code to display a spinner
window.location.href = "/path/to/downloadGeneratingPage";
// some code to hide the spinner
});
下载工作正常,但按照此代码的执行方式,微调器会立即隐藏。我想找到一种方法,让微调器显示出来,一旦服务器发回请求,微调器就会再次隐藏。
我尝试了一些其他选项,比如使用$.get()
并将数据发送到隐藏的iframe,但这不允许我像使用服务器的HTTP响应那样建议文件名(但它确实允许我在希望隐藏微调器时隐藏微调器)。这个名称不是一个大问题(很好),但我至少需要添加扩展,这样用户就可以在不重命名的情况下打开它
基本上我想要的是:
- 发送请求时显示微调器
- 在浏览器收到文件后下载文件(如果需要,我可以更改服务器端代码,例如发送不同的HTTP头)
- 收到文件时隐藏微调器
- 允许我添加文件扩展名
在window.location.href
中设置值将卸载当前页面并加载您定义的页面。该语句之后的代码将不会执行。
您可能想要的是一个ajax请求。
//Code to show the spinner
$.ajax( "/path/to/downloadGeneratingPage" ).done( function( data ) {
//Code to hide the spinner and do something with the data the server sent back
} );
相关文章:
- 将包含SVG元素的HTML转换为图像文件
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 在JSON文件中查找一个元素,并将其显示为HTML
- 如何在php中按元素按字母顺序排列json文件
- 如何将旋转的画布元素保存到文件中
- 无法查找元素'手动加载CSS文件时的CSS属性
- SVG使用Javascript将文件上载到DOM就绪元素
- 如何使用量角器将文件上传到ng文件上传元素
- 访问嵌入文件的元素
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 使用 jQuery 从 HTML 中的多个图像元素中删除文件路径
- 我正在尝试从 xhtml 文件中动态提取所有
元素,并使用 javascript 将它们放入选择列表中
- 我需要使用AngularJS从JSON文件创建HTML元素
- 从上传的文件中获取svg元素的宽度
- 使用script元素上的html data-*属性来配置引用的脚本文件
- 当.js和.html不在同一文件夹中时,如何在Aurelia中创建自定义元素
- 在不同的html文件中将html从一个元素替换为另一个元素
- 为什么不是't用于将每个元素写入文件的循环
- on文件输入元素的更改事件