在onload上调用两个函数不起作用
Calling two function on onload is not working
我认为我犯了一些愚蠢的错误,但不知何故,当我在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()
之外声明它。
相关文章:
- JQuery合并了keyup和focusout两个函数
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 递归|两个函数名
- 同一事物的两个函数,一个崩溃,另一个不崩溃,为什么
- 如何调用两个函数是一种html输入类型
- 广义化对两个性质起反作用的两个函数
- 两个函数之间的角度承诺
- 在keyup更改上运行两个函数
- 为什么这两个函数调用不相等
- 在 javascript 中通过继承调用两个函数
- 删除两个函数使用的全局变量
- 我需要将这两个函数从javascript更改为JQuery,任何人都可以告诉我如何转换
- 我需要在单击时运行两个函数.即使嵌套在一起,我也无法让它们都工作
- iMacros iim播放如何调用两个函数
- 尝试连接Angular.js或JavaScript中的两个函数返回
- 我的if和else-if逻辑中的问题以及两个函数的冲突
- 如何在onchange事件中的两个函数之间进行选择
- javascript中的函数重载使两个函数名称相同,但输入数字不同
- 包括javascript按键中的两个函数
- 在onload上调用两个函数不起作用