- 浏览: 149340 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (137)
- JavaScript (23)
- get post (0)
- SSH (4)
- Hibernate (1)
- cmd (2)
- 火狐 IE (1)
- 中英文环境模板下载 (1)
- 日期 (0)
- 其他总结 (5)
- 正则校验 (3)
- Sql Server (0)
- FreeMarker (1)
- 继承 (1)
- SQL (2)
- ORACLE -- SQL Server -- Access 常见Sql语句的区别 (1)
- ORACLE -- SQL Server -- Access 常见Sql语句的区别 (0)
- 解决int和Integer不能互转 (0)
- 原子类 (1)
- Final,finally,finalize的区别 (1)
- Web前端 (12)
- Reader InputStream (1)
- 线程 (1)
- JDBC (1)
- AJAX (3)
- Linux (2)
- 素数 (1)
- 接口-----继承 (1)
- 数据库查询性能优化 (1)
- Spring MVC3 深入了解 (1)
- JS (18)
- log4j简介 (1)
- Java序列化的机制和原理 (0)
- allowTransparency属性 (1)
- 测试类 (1)
- CSS (14)
- JQuery (10)
- 多线程 (1)
- 数据库 (2)
- Spring 注解 (1)
- JSTL标签库 (1)
- HTML (8)
- 界面设计 (4)
- 测试 (4)
- 职业生涯 (1)
- 数据可视化 (1)
- UI设计 (3)
- eclipse怎样生成javadoc (2)
- redis memcache 比较 (1)
- Windows 8系统IE10无法安装Flash Player插件的解决办法 (1)
- IE7 问题 (1)
- 常用JS验证 (1)
- Hadoop,MapReduce学习步骤 (1)
- 开始-运行-命令大全 (1)
- jQuery与ExtJS优缺点比较 (1)
- Oracle (1)
- 文档转换 (1)
- Maven与Ant比较 (1)
最新评论
-
谁说我不是会员:
很给力的文章,通俗易懂
Get请求和Post请求的区别 -
Spirit_eye:
请问一个图片按钮怎么置灰
按钮置灰跟按钮不显示
window.onload
简单地讲,window.onload和<body onload="">可以理解成一个,只要有一个就行了,不要同时使用,同时使用的话,在程序能正常运作的情况下,以最后出现的为准;
window.onload的正确用法是【window.onload=function(){ AAAAAAA }】或者【window.onload=XXXX】,<body onload="">的正确用法是【<body onload="BBBBB(),BBBBB()">】,这里的XXXX一定要是不带括号的情况,就比如是【test2】但不能是【test2()】,后面我说明这个原因。多个window.onload定义时,以最后一个为准,前提是代码正确,比如有这样的代码:
window.onload=test1;
window.onload=function(){alert("2");};
window.onload=test3;
最后的结果当然是window.onload=test3;生效。
简单看了一下你的问题真的是太多了,你的基础太差,需要好好补啊。还有DOM和JS的关系与JS操作DOM的知识。
至于你的那些疑问,挑两个来说吧:
一、为window.onload指派新的方法(理解为函数吧),请用window.onload=XXXXX;而不是window.onload(XXXXXX);这样做的后果是你不能保证你想要的结果,因为XXXXXX可能是未知数,某些情况下这样的结果也等同于【window.onload()】,也就是直接启动了window.onload事件,具体的你需要学习一下js的基础。
二、你上面的写法:window.onload(test1,test2(),test3()); 这里产生的结果原理大致是这样的:程序走到这里,看见了【window.onload(】(注意左括号) ,程序读到了左括号就会认为这个是要传递参数了,接下来就应该读括号里的参数情况直到遇到右括号。第一个参数【test】,当普通变量处理了,所以运行的结果就是第一个参数是【undefined】;再往下走,第二个参数【test2()】,当函数处理,所以这个时候会先弹出提示“2”,再把函数的返回值作为参数,但是因为你的函数没有返回值,所以运行的结果就是第二个参数也是【undefined或者true或者false,反正就是未知的】;同样的,走第三个参数时,先运行alert,提示“3”;然后第三个参数还是【undefined或者true或者false】;接下来,终于看到右括号了,程序此时的运行情况就应该是【window.onload(undefined,undefined,undefined);】,由于window.onload是不用参数的,所以这里就等于【window.onload();】所以会执行一次onload事件,而之前的代码中,你的onload事件已经指派为【test1(),test2()】,所以这里会先后弹出1和2。等页面全部加载完,又会因为【body onload="test1(),test2()"】再次执行,再次弹出1和2;所以这里为什么会出现两次1和2,就是因为先有【window.onload()】后有【body onload="test1(),test2()"】,所以整个程序运行的结果就是231212了。同样的原理你后面的【window.onload(test1,test3()); 】会出现31212。
三、window.onload=test3() 和 window.onload=test3 是两个概念,【window.onload=test3() 】运行情况大致是:由于这里是函数【test3()】所以会先执行一下,提示3,然后把函数执行的结果作为等号右边的值要传递给左边,程序此时也就等于【window.onload=undefined 】,显然这个程序没有意义,再往下走,程序遇到了【body onload="test1(),test2()"】,所以会提示1和2,整个下来就是312了。但是【 window.onload=test3 】等同于【window.onload=function test3(){ alert("3");} 】,这里是函数名传递问题。所以只提示3。同时这段代码覆盖了【body onload="test1(),test2()"】。所以不会提示1和2了。
四、window.onload=(test1(),test4()) 这样的写法也是不对的,基本上是先提示1和4,然后程序变成【window.onload=(undefined,undefined) 】,会导致这个程序错误的。
html页面加载是从头加载到尾部,和js还是html无关。js在html头部写,就先加载,如果里面寻找某个元素,这时候页面加载的html还没有加载到,自然找不到对象。建议js都写在html底部。一、不会产生上述的问题。二、利于页面加载速度,页面结构和css先加载,快速让浏览器上显现页面。
来自:http://hi.baidu.com/zhanglp/item/951e90f3728e030384d2788c
简单地讲,window.onload和<body onload="">可以理解成一个,只要有一个就行了,不要同时使用,同时使用的话,在程序能正常运作的情况下,以最后出现的为准;
window.onload的正确用法是【window.onload=function(){ AAAAAAA }】或者【window.onload=XXXX】,<body onload="">的正确用法是【<body onload="BBBBB(),BBBBB()">】,这里的XXXX一定要是不带括号的情况,就比如是【test2】但不能是【test2()】,后面我说明这个原因。多个window.onload定义时,以最后一个为准,前提是代码正确,比如有这样的代码:
window.onload=test1;
window.onload=function(){alert("2");};
window.onload=test3;
最后的结果当然是window.onload=test3;生效。
简单看了一下你的问题真的是太多了,你的基础太差,需要好好补啊。还有DOM和JS的关系与JS操作DOM的知识。
至于你的那些疑问,挑两个来说吧:
一、为window.onload指派新的方法(理解为函数吧),请用window.onload=XXXXX;而不是window.onload(XXXXXX);这样做的后果是你不能保证你想要的结果,因为XXXXXX可能是未知数,某些情况下这样的结果也等同于【window.onload()】,也就是直接启动了window.onload事件,具体的你需要学习一下js的基础。
二、你上面的写法:window.onload(test1,test2(),test3()); 这里产生的结果原理大致是这样的:程序走到这里,看见了【window.onload(】(注意左括号) ,程序读到了左括号就会认为这个是要传递参数了,接下来就应该读括号里的参数情况直到遇到右括号。第一个参数【test】,当普通变量处理了,所以运行的结果就是第一个参数是【undefined】;再往下走,第二个参数【test2()】,当函数处理,所以这个时候会先弹出提示“2”,再把函数的返回值作为参数,但是因为你的函数没有返回值,所以运行的结果就是第二个参数也是【undefined或者true或者false,反正就是未知的】;同样的,走第三个参数时,先运行alert,提示“3”;然后第三个参数还是【undefined或者true或者false】;接下来,终于看到右括号了,程序此时的运行情况就应该是【window.onload(undefined,undefined,undefined);】,由于window.onload是不用参数的,所以这里就等于【window.onload();】所以会执行一次onload事件,而之前的代码中,你的onload事件已经指派为【test1(),test2()】,所以这里会先后弹出1和2。等页面全部加载完,又会因为【body onload="test1(),test2()"】再次执行,再次弹出1和2;所以这里为什么会出现两次1和2,就是因为先有【window.onload()】后有【body onload="test1(),test2()"】,所以整个程序运行的结果就是231212了。同样的原理你后面的【window.onload(test1,test3()); 】会出现31212。
三、window.onload=test3() 和 window.onload=test3 是两个概念,【window.onload=test3() 】运行情况大致是:由于这里是函数【test3()】所以会先执行一下,提示3,然后把函数执行的结果作为等号右边的值要传递给左边,程序此时也就等于【window.onload=undefined 】,显然这个程序没有意义,再往下走,程序遇到了【body onload="test1(),test2()"】,所以会提示1和2,整个下来就是312了。但是【 window.onload=test3 】等同于【window.onload=function test3(){ alert("3");} 】,这里是函数名传递问题。所以只提示3。同时这段代码覆盖了【body onload="test1(),test2()"】。所以不会提示1和2了。
四、window.onload=(test1(),test4()) 这样的写法也是不对的,基本上是先提示1和4,然后程序变成【window.onload=(undefined,undefined) 】,会导致这个程序错误的。
html页面加载是从头加载到尾部,和js还是html无关。js在html头部写,就先加载,如果里面寻找某个元素,这时候页面加载的html还没有加载到,自然找不到对象。建议js都写在html底部。一、不会产生上述的问题。二、利于页面加载速度,页面结构和css先加载,快速让浏览器上显现页面。
来自:http://hi.baidu.com/zhanglp/item/951e90f3728e030384d2788c
发表评论
-
jQuery与ExtJS优缺点比较
2014-03-18 11:36 1995jQuery与ExtJS优缺点比较 jQuery 主页:h ... -
html5 在IE6/IE7/IE8中使用html5标签
2014-01-13 11:26 4952html5 在IE6/IE7/IE8中使用html5标签 h ... -
让IE浏览器支持HTML5标准的方法
2014-01-10 15:24 504让IE浏览器支持HTML5标准 ... -
jquery设置元素的readonly和disabled
2013-12-25 10:29 471jquery设置元素的readonly和disabled ... -
JS数据类型转换
2013-12-06 09:55 668JS数据类型转换 JS数据类型转换方法主要有三种:转换函数、 ... -
JS:window.onload的使用
2013-11-27 16:30 579JS:window.onload的使用 1、最简单的调用 ... -
$(document).ready() 与 JavaScript中的window.onload
2013-11-27 15:07 560Jquery中$(document).ready()的 ... -
小编辑 HTML5 的 placeholder属性
2013-11-20 16:52 462HTML5 的 PLACEHOLDER 属性\ HTML5 ... -
JSON 数据格式
2013-11-14 10:37 399JSON 数据格式 JSON(JavaScript Obje ... -
js 中 map 转换 json 格式
2013-11-01 14:13 19865js 中 map 转换 json 格式 function ... -
JS获取当前页面的URL信息
2013-10-31 17:30 546JS获取当前页面的URL信 ... -
input失去焦点和获得焦点jquery焦点事件
2013-01-09 16:12 4530<html xmlns="http://www ... -
input失去焦点和获得焦点jquery焦点事件
2013-01-09 16:12 1328<html xmlns="http://www ... -
style中position的属性值详解
2013-01-09 15:31 623style中position的属性值详 ... -
HTML 事件属性
2012-12-07 17:52 672HTML 4 的新特性之一是可以使 HTML 事件触发浏览 ... -
HTML <a> 标签的 target 属性
2012-12-07 17:43 1523<h3>Table of Contents< ... -
jsp页面Table自动换行
2012-12-05 10:29 2010自动换行:word-wrap:break-word;table ...
相关推荐
脱离document.onload和window.onload的onload事件,可多次添加加载事件!
资源名称:15天漫游jQuery中文翻译 word版内容简介:15天漫游jQuery中译本,不是很完整,但是也是学习jquery 不可或缺的东东1 day Window.onload() 一直是常用的javascript函数。数年来程序员们习惯了通过它在...
selenium会弹出网页窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot.prototype.modifyWindowToRecordPopUpDialogs中的newOpen,但这必须在window.onload之后创建才有效。对于HTTPS安全性...
腾迅Web前端开发工程师笔试题及答案 ...function elementName(evt){ evt = evt|| window.... window.onload = function(){ var el = document.getElementsByTagName('body'); el[0].onclick = elementName; } ......
其中,window.onload方法是页面所有资源加载完成之后触发,因此性能较差;(document).ready方法是在页面dom元素加载完成之后触发,性能较好。 总体而言,页面渲染完毕时间监听是前端开发中一个非常重要的环节,能够...
window.onload = function() { var myShakeEvent = new Shake({ threshold: 15 }); myShakeEvent.start(); window.addEventListener('shake', shakeEventDidOccur, false); function ...
window.onload = function () { window.setInterval("ajaxpage('dummy/top.txt','top',{color:'blue',opacity:0.25})", 3000); window.setInterval("ajaxpage('dummy/left.txt','left',{color:'black', opacity:...
window.onload = function(){ initAnimate() } function initAnimate(){ drawBg(); lastTime = new Date(); animate(); } var lastTime; function animate(){ ctx.save(); ctx....
window.onload = function () { console.log('window.onload 方式执行') } $(document).ready(function () { console.log('$(document).ready(function(){}) 方式执行') })
window.onload=function(){SetWidth()}; window.onresize=function(){SetWidth()}; function SetWidth(){ if(!document.getElementById) return; var w=$("gallery").offsetWidth-20; if(w>0 && w!=null){ $(...
JS知识点:1.window.onload记得关闭加载动画 2.判断是否手机端 3.js封装了个缓动动画。 喜欢的可以打开下面的网页另存下载下来!代码乱的可以[捂脸]!很纯很净[奸笑]!原汁原味[机智]!背景音乐还可以,点击就可以听...
window.onload = function(){ oVdo = new Video({ name:"video", time:[ {"src":"./video/22.mp4","title":"shangjiahang@tinysoft"}, {"src":"./video/23.mp4","title":"shangjiahang1@tinysoft"}, {"src":"....
本微信登录代码主要适用于手机微信网页的会员登录功能,无需有公众号,无需申请开通开放平台,只需要网站上镶上本代码,即可实现微信网站自动登录,自动获取... } }//获取url中传递过来的值window.onload = function(){
(也许window.onload()能实现同样的功能,但是jQuery更加快速,灵活)。 $(document).ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数,因为它可以极大地提高web...
window.onload = function() { var elevator = new Elevator({ mainAudio: '/src/to/audio.mp3', endAudio: '/src/to/end-audio.mp3' }); } // You can run the elevator, by calling. ...
JS实现点击掉落特效 js实现点击掉落特效 ... charset=utf-8"> 无标题文档</title> <script src="jquery.js"></script> <script> window.onload = function () { var str = ''; var len = 20; var aDiv = docu
JavaScript canvas实现七彩太阳光晕效果 ...DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> , initial-scale=1.0"> <title>Document</title> <script> window.onload=f
window.onload=function(){ page=id("menu").getElementsByTagName("div"); if(page.length>0){ page[0].style.zIndex=2; } for(i=0;i<page.length;i ){ page[i][removed] ="<span class=\"tip\">" (i 1) "/" ...
window.onload = function(){ var btn = document.getElementById('btn'); var cm = document.getElementById('cm'); // 获取html中的菜单 var menu = document.getElementsByTagName('span'); var ...