如何用普通javascript捕获HTML图像加载超时?

如何用普通javascript捕获HTML图像加载超时?,javascript,html,Javascript,Html,这个问题可能会在不同的论坛上被回答很多次,但我真的找不到我的确切答案 我对javascript非常陌生,只是在玩HTML和javascript。想写一个简单的脚本,让我的HTML加载一个img标签直到特定的超时,如果它不能,它会显示一个警报框。我找到了使用jQuery使用setTimeout()的一些答案,但我想用一个简单的js编写它 到目前为止,我尝试的是:捕获img的onLoad事件并在那里设置一个标志。使用给定的超时值通过setTimeout()并排启动计时器。如果超时过期并且onLoad

这个问题可能会在不同的论坛上被回答很多次,但我真的找不到我的确切答案

我对javascript非常陌生,只是在玩HTML和javascript。想写一个简单的脚本,让我的HTML加载一个img标签直到特定的超时,如果它不能,它会显示一个警报框。我找到了使用jQuery使用setTimeout()的一些答案,但我想用一个简单的js编写它

到目前为止,我尝试的是:捕获img的onLoad事件并在那里设置一个标志。使用给定的超时值通过setTimeout()并排启动计时器。如果超时过期并且onLoad()中的标志没有改变它的初始值,那么我就完成了

<img id="img1" src="URL_HERE" onload="imgLoaded()" />

var isLoaded = 0;
function imgLoaded() {
    isLoaded = 1;
}

function qWinLoaded() {
    setTimeout(function checkImgLoad() {
        if (!isLoaded){
            document.getElementById("img1").src = "";
            alert("Failed to fetch given image within time!!");
        }
    },
    3000);
}

window.onload = qWinLoaded;

var-isLoaded=0;
函数imgLoaded(){
孤岛负载=1;
}
函数qWinLoaded(){
setTimeout(函数checkImgLoad(){
如果(!已加载){
document.getElementById(“img1”).src=“”;
警报(“未能在时间内获取给定图像!!”;
}
},
3000);
}
window.onload=qwinload;

但是有了这段代码,我已经在窗口加载时启动了计时器。一旦html img标签真的开始下载图片,我该如何启动计时器?

这类功能的使用案例是什么,以及您试图解决的更高级别的问题是什么?@FabianLauer我正在考虑捕获img的onLoad事件并在那里设置一个标志。使用给定的超时值通过setTimeout()并排启动计时器。如果超时过期并且onLoad()中的标志没有改变它的初始值,那么我就完成了。但在这里,我如何停止加载正在进行的映像?@charlietfl在我的脑海中没有任何用例。在使用javascript和html进行一些基本操作时,我想到了这一点。如果传递给图像标记的url不是图像文件,那么错误事件将很快触发。不明白你为什么需要一个timeout@charlietfl是的,这是真实的,代码是为了学习而不是为了解决任何专业软件问题。