什么是“ onload = foo(event)”?

时间:2019-06-08 10:27:30

标签: javascript onload

我是JS新手,并找到以下代码部分:

<body>
    <span id="sp1">
        <img src="aurora.gif" onload="ev1(event)">
    </span>        
</body>

据我了解,如果整个HTML文档完成“加载”操作,就会触发onload属性。
但我不太了解,如果ev1函数传递了什么内容, onload属性被触发。在这种情况下,event是什么?

Here是源代码

3 个答案:

答案 0 :(得分:3)

它将处理程序与图像的load事件相关联,并将事件的事件对象传递到处理程序中。 event对象在onload属性样式事件处理程序的上下文中可靠地跨浏览器存在:在IE上,它是全局的;在IE中,它是全局的。在Firefox上,它是为onload处理函数创建的综合函数中的局部变量;在Chrome上,我认为这都是 。 :-)

请注意,ev1函数必须是全局函数,这是不使用onxyz属性类型事件处理程序的众多原因之一。

答案 1 :(得分:1)

img也具有onload属性,并且在图像加载完成时被调用。同样,它也具有onerror事件处理程序。 event代表事件对象。

function ev1(e) {
  console.log(e)
  console.log('Img loaded')

}
img {
  width: 200px;
  height: 200px;
}
<img src='https://i.redd.it/xbq78cnv2nr21.jpg' onload='ev1(event)'>

答案 2 :(得分:0)

这似乎是尝试将Event对象作为参数传递给名为ev1的函数。

author 开发人员应该使用JavaScript事件,而不是使用内联事件。

document.querySelector("img").addEventListener("load", event => {
  console.log(event);
});

祝你好运。