浏览器下载状态

时间:2015-09-07 17:15:03

标签: javascript google-chrome internet-explorer google-chrome-extension mozilla

我正在尝试构建一个可以从浏览器中获取特定下载状态的应用程序,例如,如果它已完成,浏览器可以触发信号或只是通过对话框通知用户。

如果我对浏览器插件进行编码或者可以使用JS ??

进行编码,我应该如何继续

1 个答案:

答案 0 :(得分:0)

可以使用XMLHttpRequest完成。当您将数据下载为二进制文件时,您会收到指示下载状态的事件。下载完成后,您可以使用URL.createObjectURL获取二进制数据的链接。

这是一个例子。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script>
            addEventListener("DOMContentLoaded", function () {
                var request = new XMLHttpRequest();
                request.open("GET", "image.png");
                request.responseType = "arraybuffer";
                request.addEventListener("load", function () {
                    var blob = new Blob([this.response], {type: "image/png"});
                    var a = document.createElement("a");
                    a.href = URL.createObjectURL(blob);
                    a.download = "image.png";
                    a.innerHTML = "File ready";
                    document.body.appendChild(a);
                });
                request.send();
            });
        </script>
    </head>
    <body>
    </body>
</html>