此代码有效。首先,警告说“真实”'因为图像确实加载了,然后“错误”#39;因为图像不存在。但我不明白事件处理程序如何知道错误,因为处理程序没有被应用(?)到图像,直到主体加载完毕。
在onload
被解雇之前加载的Aren图像?在我看来,图像尝试加载,失败,然后处理程序应用于元素,然后处理程序等待,不知道已经发生故障。
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
alert("Image loaded: " + document.getElementById("myImg").complete);
document.getElementById("myImg").addEventListener("error", ErrorHappened());
}
function ErrorHappened(){
alert('error');
}
</script>
</head>
<body onload="myFunction()">
<p>This property returns true if the image is finished loaded, and false if not.</p>
<img id="myImg" src="compmanabc.gif" alt="Computerman" width="107" height="98">
</body>
</html>
&#13;
答案 0 :(得分:1)
因为当您尝试将其添加到事件侦听器时,您实际上正在调用该函数。您应该通过引用传递函数:
document.getElementById("myImg").addEventHandler("error", ErrorHappened);
注意函数名后面没有括号。