Javascript:如何在' onload'之后应用事件处理程序。事件处理在页面完全加载之前发生的事件?

时间:2018-01-31 13:35:41

标签: javascript onload eventhandler

此代码有效。首先,警告说“真实”'因为图像确实加载了,然后“错误”#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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

因为当您尝试将其添加到事件侦听器时,您实际上正在调用该函数。您应该通过引用传递函数:

document.getElementById("myImg").addEventHandler("error", ErrorHappened);

注意函数名后面没有括号。