`
magic_agate
  • 浏览: 102490 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

js之onload事件

    博客分类:
  • js
 
阅读更多
 如果我问你window.load和window.onload分别是什么意思,恐怕你会回答我:“这不是页面加载完就执行吗”。

  但是答案是不一定,得看你怎么用。看一下例子吧

例1:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function ShowMessage()
{
alert("true");
}
window.onload=ShowMessage;

</script>
</head>

<body>


当你看到true时看不到我

</body>
</html>
当你看到true的弹出框的时候,你肯定没有看到“当你看到true时看不到我”,说明页面还没有载入完就已经开始执行js了。

例2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function ShowMessage()
{
alert("true");
}
window.onload=function(){ShowMessage();}

</script>
</head>

<body>


你看到true时就看到我了

</body>
</html>

当你看到true的弹出框的时候,你也会看到“你看到true时就看到我了”,这个才是真正的页面载入完才触发。

PS:推荐像onload事件之类的使用匿名函数执行,即window.onload=function(){ShowMessage();}这种形式。


分享到:
评论
1 楼 shy2850 2012-08-15  
window.onload 必须是赋值为function类型的时候才能够在 页面加载完成时被调用。

其他情况下,就会覆盖成一个普通的全局变量了。

function ShowMessage()  
{  
alert("true");  
}  
window.onload=ShowMessage();

ShowMessage这个方法执行过后的返回值是undefined,
window.onload=ShowMessage();相当于执行:
ShowMessage();
window.onload=undefined;
这两句。

function对象如果只是赋值,不能够带括号的,带括号表示先执行function,然后将执行结果赋值。你只需要:window.onload=ShowMessage;这样就可以了。



相关推荐

Global site tag (gtag.js) - Google Analytics