监控后台图像加载纯javascript
Monitoring background image load pure javascript
我有一个简单的代码:
<div id="dk" style="background-image: url('d.jpg');"></div>
我想监控这个div加载,当它成功时,做一些事情,如果加载超过5秒,做其他事情。
我试着做:
document.getElementById('dk').addEventListener('loadeddata', function () {
//do something
}, false);
但我相信它只适用于vídeos和áudios。否则,它会在完成时得到。
我会做这样的事情(未经测试):
function BackgroundLoader(url, seconds, success, failure) {
var loaded = false;
var image = new Image();
// this will occur when the image is successfully loaded
// no matter if seconds past
image.onload = function () {
loaded = true;
var div = document.getElementById("dk");
div.style.backgroundImage = "url('" + url + "')";
}
image.src = url;
setTimeout(function() {
// if when the time has passed image.onload had already occurred,
// run success()
if (loaded)
success();
else
failure();
}, seconds * 1000);
}
然后使用它:
<div id="dk"></div>
<script>
function onSuccess() { /* do stuff */ }
function onFailure() { /* do stuff */ }
BackgroundLoader('d.jpg', 5, onSuccess, onFailure);
</script>
将事件侦听器更改为以下内容:
document.getElementById('dk').addEventListener('load', function () {
//do something
}, false);
相关文章:
- HTML外部javascript加载另一个javascript
- 什么是谷歌地图'的javascript加载策略
- 使用javascript加载knockoutjs组件
- Javascript - 加载函数运行时未定义的变量
- 使用javascript加载并显示来自另一个域的页面,而不显示原始URL
- 使用Javascript加载页面
- Javascript加载时间过长
- 使用纯Javascript加载外部URL内容
- 如何在使用javascript加载页面时直接设置对象参数
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- 将外部 SVG 和包含 JavaScript 加载到 HTML 中
- 是否有一个 JavaScript 加载器可以将套接字的数量限制为 1 或 2
- 使用本地生成的代码通过 JavaScript 加载 IFrame
- Jquery/javascript:加载页面时不需要的重复函数
- 一段时间后使用Javascript加载网页ASP.net
- 在https网站上用javascript加载封面图片
- 如何使用cURL获取JavaScript加载的网络内容
- 如何检查是否使用javascript加载了框架?-不是加载,不是iframe
- I'我正在尝试将JavaScript加载到我的UIWebView中
- 如何用Javascript加载本地文件