1.关于window.onload 和 body.onload 的区别

当我们将onload 事件写在body元素上时,真正执行的其实是window对象的onload事件。因素HTMl页面中没有window标题,所以就写在body元素上了。

The onload attribute of the body object sets an onload event handler for the window. This technique of calling the window onload event through the bodyobject is overridden by any other means of invoking the window onload event, provided the handlers are in the same script language.

摘录自:http://technet.microsoft.com/zh-cn/subscriptions/index/cc197055(v%3Dvs.85).aspx

相关阅读:

defer,一个设计时可用的属性:
     在解决以下的问题,当然后可以在body元素的onload事件中写代码,当对于script来说,还可以为脚本添加一个名为defer的属性,使JavaScript脚本在“整个页面加载完成”后才执行。像上面的代码,如果写成以下的样子,则会被正确的执行。

 <html>
<head>
<script type="text/javascript" defer="true">
var obj = document.getElementById("div1");
obj.innerText = "This is my test defer attribute";
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

对于这个属性,微软有以下解释:

Using the attribute at design time can improve the download performance of a page because the browser does not need to parse and execute the script and can continue downloading and parsing the page instead.

所以这个说这个属性真正使用的地方并不会多。不过这有助于我们理解HTMl页面是如何加载到浏览器的。

原文地址:http://hi.baidu.com/arjsyy/item/94894ca86c34c49b1410732e

可能你也碰到过这种情况,就是在js的代码中用了window.onload后,可能会影响到body中的onload事件。你可以全写在body 中,也可以全放到window.onload中,但是这样并不是很方便,有时我们需要两个同时用到。这时就要用window.attachEvent和 window.addEventListener来解决一下。

下面是一个解决方法。至于attachEvent和addEventListener的用法,可以自己Google或百度一下。

 if (document.all)
{
window.attachEvent('onload',函数名)//IE中
}
else
{
window.addEventListener('load',函数名,false);//firefox
}

原文地址:http://blog.sina.com.cn/s/blog_4be585ca01000akh.html

推荐一篇博客:http://blog.csdn.net/john2522/article/details/7885453

window.onload 、body.onload 以及 jQuery 等dom加载完成后执行脚本的区别的更多相关文章

  1. jquery在页面加载完成后再append的元素事件无效问题

    最近遇到一个问题,jquery在页面加载完成后再append的元素,append元素上有onclick事件,但是在append的元素上怎么点击都不会触发onclick事件.就如: <ul cla ...

  2. window.onload在文档加载完成后执行

    验证a .b两点疑惑: a.<script src="./main.js"></script>中的window.onload是在html全部加载完了才执行, ...

  3. jQuery实现DOM加载方法源码分析

    传统的判断dom加载的方法 使用 dom0级 onload事件来进行触发所有浏览器都支持在最初是很流行的写法 我们都熟悉这种写法: window.onload=function(){ ... }  但 ...

  4. JQuery 页面加载完成后执行事件

    一: $(document).ready(function(){ //code }) 二: jQuery(document).ready(function(){ //code }) 三: window ...

  5. jquery mobile动态加载数据后无法渲染

    引自:http://blog.sina.com.cn/s/blog_025270e901016lst.html jquery mobile在动态添加html之后无法渲染控件,无法转换控件的办法! jq ...

  6. 控制dom 加载成功后事件

  7. js实现类型jq的dom加载完成

    有时候我们只想在 dom 加载完成后运行 js ,而不是等所有图片加载完成.所以不需要 onload , onload 会加载图片等其他媒体.很消耗时间. 原:http://blog.csdn.net ...

  8. DOM加载过程中ready和load的区别

    在浏览器地址栏输入URL地址,浏览器开始加载页面时,有以下几个过程 1.浏览器开始解析HTML文档 2. 浏览器遇到HTML文档中的<script>元素以及CSS样式文件,并且没有asyn ...

  9. JQuery 之 在数据加载完成后才自动执行函数

    数据加载完成执行: $(window).load(function(){ ... }); 进入页就执行,不论等数据是否加载完成: $(document).ready(function(){ ... } ...

随机推荐

  1. 数位dp模版(dp)

    #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> ...

  2. 让你的apache支持ipv6

    如果你使用的linux系统已经获取到了ipv6地址,你就可以让你的apache htpd 等也支持ipv6. 1.检查linux监听的端口,如果有:::port ,而且获取到了ipv6地址,则可以确定 ...

  3. Node 入门<1>

    1. Node   JavaScript web服务器框架,主要特点:事件驱动,异步 I/O,强制不共享任何资源的单线程,单进程系统. 每一个node进程都构成网络应用中的一个节点.          ...

  4. 13、Django实战第13天:分页列表功能

    我们看课程 机构列表页是需要分页的 为了完成分页功能,我们需要用到Django的一个开源开发库django-pure-pagination workon mxonline pip install dj ...

  5. 安全管道工具SSF

    安全管道工具SSF   SSF(Secure Socket Funneling)是一款安全网络通信工具.它可以将多个管道的数据通过一个TLS连接转发给远程计算机,从而实现数据的安全传输.它不仅支持TC ...

  6. 洛谷 P2742 [USACO5.1]圈奶牛Fencing the Cows

    题目描述 农夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏.他建造的围栏必须包括他的奶牛喜欢吃草的所有地点.对于给出的这些地点的坐标,计算最短的能够围住这些点的围栏的长度. 输入输出格式 输入 ...

  7. ZOJ 3949 Edge to the Root(树形DP)

    [题目链接] http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3949 [题目大意] 给出一棵根为1的树,每条边边长为1,请你 ...

  8. 【2-SAT(两次DFS版)】BZOJ1823-[JSOI2010]满汉全席

    [题目大意] 有n个材料,m个评委.每种材料可以被用来做满族菜或汉族菜,m个评委有两种可以让他满意的猜中.问是否可以满足所有评委要求? [思路] 每天只能做三道题,我已经是一个废人了……(葛优躺.jp ...

  9. Spark1.4远程调试

    1)首先,我们是在使用spark-submit提交作业时,使用 --driver-java-options ”-Xdebug -Xrunjdwp:transport=dt_socket,server= ...

  10. Java高级架构师(一)第17节:X-gen生成所需的DAO部分模板