在 window.location.href 下载后执行函数

Excuting function after window.location.href download

本文关键字:执行 函数 下载 href window location      更新时间:2023-09-26

我有一个文件下载,它正在通过一个简单的window.location.href命令启动。由于我停留在同一页面上,我想调用一个不同的函数来刷新页面的一部分,但下载后没有执行另一个函数。有没有办法做到这一点?我想我正在寻找类似ajax的"成功"选项。

谢谢!

试试这个:

var req = new XMLHttpRequest();
req.open("POST", "your endpoint", true);
req.responseType = "blob";
req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var fileName = "fileName.pdf";
req.onload = function (event) {
    var blob = req.response;
    if (req.status === 200) {
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = fileName;
        link.click();
        //call your method her to do anything
    }
};
req.send();
//if you have any parameter, you can this
//reg.send(param)
一个简单的

AJAX发布调用就足够了。特别是对于像文件下载这样异步和可变的时间,XMLHttpRequestreadyState属性非常有用。