在onload上调用两个函数不起作用

Calling two function on onload is not working

本文关键字:两个 函数 不起作用 onload 调用      更新时间:2023-12-06

我认为我犯了一些愚蠢的错误,但不知何故,当我在onload上调用两个函数时,我没有得到预期的结果。让我展示一下代码-

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function greetUser() {
   alert('Hello users!');
}
function greetByName() {
   var name='';
   var name=prompt('Please enter your name','');
   if(name)
   {
     alert('Nice to meet you '+name);
     document.getElementById('rockImg').src='iRock_smile.png';
     setTimeout("document.getElementById('rockImg').src='iRock_normal.png';",5000);
   }
function setImageSize() {
     alert('hello');
  }
}
</script>
</head>
<body onload="setImageSize();greetUser();">
<img src="iRock_normal.png" id="rockImg" alt="iRock" onclick="greetByName();" />
</body>
</html>

我连一个警报都没有。如果删除setImageSize(),则代码工作正常。所以我认为可能有一些愚蠢的错误。请帮帮我。

这是因为您在greetByName内部定义了setImage函数,所以它无法在全局范围内找到它,因为它是在greetByName()的范围内定义的,请将它移到外部。

您还可以通过从html中删除它并使用window.onload 来减少它的侵扰性

window.onload = function(){
   greetUser();
   setImageSize();
}
function greetUser() {
    alert('Hello users!');
}
function greetByName() {
    var name = '';
    var name = prompt('Please enter your name', '');
    if (name) {
        alert('Nice to meet you ' + name);
        document.getElementById('rockImg').src = 'iRock_smile.png';
        setTimeout("document.getElementById('rockImg').src='iRock_normal.png';", 5000);
    }
}
function setImageSize() {
    alert('hello');
}

setImageSize()是在greetByName()中声明的,因此在调用greetByName()之前它不存在,更不用说可访问了。

greetByName()之外声明它。