在Chrome中加载iframe时,"加载"事件未触发

 小虎 发布于 2023-02-10 15:45

我试图在我的客户端上显示"掩码",而文件是动态生成的服务器端.似乎推荐解决此问题(因为它不是ajax)是使用iframe并从onload或done事件中侦听以确定文件何时实际从服务器传送到客户端.

这是我的角度代码:

    var url = // url to my api
    var e = angular.element("");
    e.load(function() {
        $scope.$apply(function() {
            $scope.exporting = false;  // this will remove the mask/spinner
        });
    });
    angular.element('body').append(e);

这在Firefox中运行良好但在Chrome中没有运气.我也试过使用onload函数:

e.onload = function()  { //unmask here }

但我也没有运气.

想法?

2 个回答
  • 很遗憾,onload如果内容是附件,则无法在Chrome中使用iframe 事件.这个答案可能会让您了解如何解决它.

    2023-02-10 15:47 回答
  • 我讨厌这个,但除了每隔一段时间检查一次之外,除了检查它是否仍在加载之外,我找不到任何其他方法.

    var timer = setInterval(function () {
        iframe = document.getElementById('iframedownload');
        var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
        // Check if loading is complete
        if (iframeDoc.readyState == 'complete' || iframeDoc.readyState == 'interactive') {
            loadingOff();
            clearInterval(timer);
            return;
        }
    }, 4000);
    

    2023-02-10 15:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有