javascript - 下载文件并等待它完成

时间:2017-10-26 03:29:39

标签: javascript html iframe

我已查看了很多主题,但找不到适用于当前chrome& IE ...

我想下载一个文件(来自与该页面相同的域,没有CORS问题)并将其保存在本地,我还需要在下载完成后进行回调以关闭我的下载&#39 ;通知。

我尝试使用隐藏的iframe:

// to download a file we don't want to use window.location.assign because in case of error the broswer
// will redirect to the error page, instead we create an invisible iframe and set src to it
function downloadToFile(url, done) {
    const iframe = document.createElement('iframe');
    iframe.style.display = 'none';
    document.body.appendChild(iframe);
    iframe.setAttribute('src', url);

    if (done) {
        const doc = iframe.contentDocument || iframe.contentWindow.document;
        const inter = setInterval(() => {
            if (doc.readyState === "complete") {
                clearInterval(inter);
                done();
            }
        }, 50);
    }
}

但是这不起作用 - Chrome似乎将iframe的readyState设置为'当文件仍在加载时,立即调用完成。

如何实现这一目标?

(我还试图勾选一个'加载'事件,但它似乎没有在chrome中调用,标准说没有iframe事件得到保证)。

0 个答案:

没有答案