给window.onload事件赋不同的参数,执行顺序不一样哦!
来源:互联网 发布:mac怎样下载bilibili 编辑:程序博客网 时间:2024/04/28 02:22
这几天敲例子老看到window.onload,有意思的是,每次赋值不同,界面执行函数显示顺序不一样,为什么呢?
一、现象
例1: 先弹出框——window.onload成了一个普通变量
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html>
- <head>
- <title>Untitled</title>
- <script type="text/javascript">
- function ShowMessage()
- { alert("true"); }
- function AlertMessage()
- { alert("again"); }
- window.onload=ShowMessage();
- window.onload=AlertMessage();
- </script>
- </head>
- <body> 当你看到true时看不到我 </body>
- </html>
当你看到true的弹出框的时候,你肯定没有看到“当你看到true时看不到我”,说明页面还没有载入完就已经开始执行js了。
PS:这样可以同时加载多个函数,只是界面出来的晚。
例2 —— 后弹出框——window.onload为事件
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html>
- <head>
- <title>Untitled</title>
- <script type="text/javascript">
- function ShowMessage()
- { alert("true"); }
- function AlertMessage()
- {alert("again");}
- window.onload=function(){ShowMessage();}
- window.onload=function(){AlertMessage();}
- </script>
- </head>
- <body> 你看到true时就看到我了 </body>
- </html>
当你看到弹出框的时候,你也会看到“你看到弹出框时就看到我了”,这个才是真正的页面载入完才触发。但是后一个函数覆盖前一个函数。
PS:该方法使用匿名函数执行,这种形式不可以同时加载多个函数,需要变形:
window.onload=function()
{
ShowMessage();AlertMessage();
}
二、结论
window.onload必须是赋值为function类型的时候才能够在页面加载完成时被调用,其他情况下,就会覆盖成一个普通的全局变量了。
functionShowMessage()
{ alert("true"); }
window.onload=ShowMessage();
ShowMessage这个方法执行过后的返回值是undefined,window.onload=ShowMessage();相当于执行:ShowMessage();window.onload=undefined;这两句。function对象如果只是赋值,不能够带括号的,你只需要:window.onload=ShowMessage;这样就可以了。带括号表示先执行function,然后将执行结果赋值。
原文地址:http://blog.csdn.net/wangyongxia921/article/details/19639711
- 给window.onload事件赋不同的参数,执行顺序不一样哦!
- 给window.onload事件赋不同的参数,执行顺序不一样哦!
- window.onload执行顺序详解
- window.onload和$(document).ready()的加载执行顺序
- 常用的window.onload等 也有执行顺序影响
- window.onload 、$(function())、;(function(){}()); 的执行顺序
- Window.onLoad 和 DOMContentLoaded事件的先后顺序
- jquery.ready与window.onload执行顺序
- js中有window.onload和<BODY>中的onload属性同时存在时 的执行顺序
- onload和onclick及其他事件的默认执行顺序
- 给window对象绑定onload事件
- JS的onload执行顺序
- html 中页面的加载顺序以及window.onload 与body 标签里面的onload事件的对比
- $(document).ready()和window.onload的不同
- window.onload 、$(function()function())、;(function(){}());的执行顺序(初)
- 一、jQuery $(document).ready()执行顺序-------------二、jquery $(document).ready() 与window.onload的区别
- window.onload绑定多个要执行的函数
- javascript window.onload不会执行的原因
- Struts2的工作原理
- 在小于99999的正整数中,找出即是完全平方数,又有两位数字相同的数。
- windows上maven安装与使用(基础操作命令)并与eclipse(galileo版)整合教程
- 2、浏览器对象BOM
- c#泛型
- 给window.onload事件赋不同的参数,执行顺序不一样哦!
- Linux Mint 13 的安装、配置及搭建Android源码编译环境
- 一张内涵图片
- Pro Android学习笔记(一二三):Telephony API(5):Phone
- PHP解释器引擎执行流程
- C++实现二叉树的前序、中序、后序非递归扁历
- android中部分Intent用法实例
- 套接字I/O模型之WSAEventSelect .
- squid代理服务器