如果我使用命名函数,它确实表现良好:
<script type="text/javascript">
window.onload = function(){
var img = document.getElementById('im');
img.onload = fun();
}
function fun()
{
alert("Image loaded");
}
</script>
<img src="picture.png" id="im"/>
但是,我的问题是,当我尝试使用匿名函数(,如下所示)时,为什么它不起作用?
<script type="text/javascript">
window.onload = function(){
var img = document.getElementById('im');
img.onload = function(){
alert("Image loaded");
}
}
</script>
<img src="picture.png" id="im"/>
答案 0 :(得分:0)
在您的第一个示例中,当事件处理程序附加到图像时(在图像加载后)调用fun
。
在第二个示例中,匿名函数在图像加载后附加到图像上。
要查看所需的行为,请尝试:
<script type="text/javascript">
window.onload = function(){
var img = document.getElementById('im');
img.onload = fun;
img.src = "picture.png";
}
function fun()
{
alert("Image loaded");
}
</script>
<img id="im"/>
或
<script type="text/javascript">
window.onload = function() {
var img = document.getElementById('im');
img.onload = function(){
alert("Image loaded");
}
img.src="picture.png"
}
</script>
<img id="im"/>
或
<script type="text/javascript">
function fun()
{
alert("Image loaded");
}
</script>
<img id="im" src="picture.png" onload="javascript:fun();"/>