蜂毒面膜孕妇可以用吗:window.onload

来源:百度文库 编辑:偶看新闻 时间:2024/05/07 06:51:02

简单地讲,window.onload和可以理解成一个,只要有一个就行了,不要同时使用,同时使用的话,在程序能正常运作的情况下,以最后出现的为准;

window.onload的正确用法是【window.onload=function(){ AAAAAAA }】或者【window.onload=XXXX】,的正确用法是【】,这里的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先加载,快速让浏览器上显现页面。