如何知道文件何时使用JQuery下载

时间:2013-10-09 13:25:37

标签: javascript jquery iframe

我在页面上有一个IFrame。父页面上有一个提交IFrame的按钮。我有一个submit事件的处理程序,它在表单提交时在父页面上显示ProgressBar Image。这部分工作正常,因此当表单开始提交回服务器时,图像会显示出来。

现在发生的事情是在服务器上生成一个Excel文件,然后下载回客户端。我需要做的是知道图像何时完成下载到客户端,以便我可以将该ProgressBar图像隐藏在父页面上。

我不知道我可以了解哪些事件可以了解IFrame何时从服务器发回,并且该文件可供下载。

我在IFrame中有以下代码

$(document).ready(function () {
                window.parent.$('#ExportWait').addClass('hidden');

                var iframe = window.frameElement;

                if (iframe) {
                    iframe.contentDocument = document;//normalization: some browsers don't set the contentDocument, only the contentWindow

                    var parent = window.parent;
                    $(parent.document).ready(function () {//wait for parent to make sure it has jQuery ready
                        var parent$ = parent.jQuery;

                        parent$(iframe).trigger("iframeloading");

                        $(function () {
                            parent$(iframe).trigger("iframeready");
                        });

                        $(window).load(function () {//kind of unnecessary, but here for completion
                            parent$(iframe).trigger("iframeloaded");
                        });

                        $(window).unload(function (e) {//not possible to prevent default
                            parent$(iframe).trigger("iframeunloaded");
                        });

                        $(window).on("beforeunload", function () {
                            parent$(iframe).trigger("iframebeforeunload");
                        });
                    });
                }

                $("form").submit(function (e) {
                    //console.log('Here We Are');
                    //alert('Exporting');
                    //window.parent.$('#ExportWait').removeClass('hidden');

                    return true;
                });
            });

我在父窗口中有以下代码

$(document).ready(function () {
    $("iframe").on("iframeloading iframeready iframeloaded iframebeforeunload iframeunloaded", function (e) {
        console.log(e.type);
    });
});

我可以在控制台中看到以下内容 iframeloading iframeready iframeloaded ----这3个是从页面和IFrame首次加载时开始的,所以我不关心其中的任何一个 ----然后,当我进行导出时,我看到了 iframebeforeunload

但这就是我所看到的,当文件下载完毕时我从未看到过。

0 个答案:

没有答案