iframe 加载外部资源,显示隐藏loading,onload失效

在项目中使用iframe 来加载外部资源,需要在iframe请求外部资源的时候,需要显示一个loading,在加载完成后,将这个loading隐藏掉,刚开始看到W3C中 iframe有一个 onload事件----该事件在iframe加载资源完成后就会触发,但是这个事件我试了试,发现触发不了,最在https://stackoverflow.com/questions/20572734/load-event-not-firing-when-iframe-is-loaded-in-chrome找到了有效的方法

 

解决办法如下:

1 <iframe class="html_area" src="http://www.baidu.com"></iframe>

设一个变量,var show_loading = true;   //这个变量为真表示loading显示,反之loading隐藏

然后 设一个计时器

var self = this
var html_iframe = document.getElementsByClassName('html_area')[0]
var interval = setInterval(function () {
    var iframeDoc = html_iframe.contentDocument || html_iframe.contentWindow.document;
    if(iframeDoc.readyState == 'complete' || iframeDoc.readyState == 'interactive'){
        self.show_iframe_loading = false
        clearInterval(interval)
    }
},500)

这样在刚开始请求的时候就显示loading,然后启动了计时器,每500ms检测一次,如果iframe内有内容的话,就将loading隐藏了

转载于:https://www.cnblogs.com/zhuchenglin/p/7581793.html

当图片正在加载时,可以显示一个loading图标来提醒用户图片正在加载。这可以通过在<img>标签中添加一个onload事件和一个onerror事件来实现。在onload事件中,可以隐藏loading图标并显示图片;在onerror事件中,可以显示一个错误信息或者重试按钮。 例如,可以这样写代码: ```html <div> <img src="path/to/image.jpg" onload="onImageLoad()" onerror="onImageError()"> <div id="loading" style="display: block;">Loading...</div> <div id="error" style="display: none;">Failed to load image.</div> <button id="retry" style="display: none;" onclick="retryImage()">Retry</button> </div> <script> function onImageLoad() { document.getElementById("loading").style.display = "none"; document.getElementById("error").style.display = "none"; document.getElementById("retry").style.display = "none"; } function onImageError() { document.getElementById("loading").style.display = "none"; document.getElementById("error").style.display = "block"; document.getElementById("retry").style.display = "block"; } function retryImage() { document.getElementById("loading").style.display = "block"; document.getElementById("error").style.display = "none"; document.getElementById("retry").style.display = "none"; document.getElementsByTagName("img")[0].src = "path/to/image.jpg"; } </script> ``` 在上面的代码中,图片加载时会显示loading图标,如果加载成功则隐藏loading图标并显示图片,如果加载失败则隐藏loading图标并显示错误信息和重试按钮。点击重试按钮会重新加载图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值