例:
1.js:
window.οnlοad=function(){undefined
console.log(1)//打印1
}
2.js:
window.οnlοad=function(){undefined
console.log(2)//没有执行
}
页面引用:
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
让页面加载完执行js有2种方法,js放在文档代码的下方和把语句代码放在window.onload方法里面。
js放在文档代码的下方这是一个最简单的文档结构,引用的javascript文件都放在body的最下方和把语句放在window.onload函数里面,可以让javascript在页面加载完成后执行。
<!doctype html>
<html>
<head>
<title>helloWorld--zxk</title>
</head>
<body>
<div></div>
<script src="xxx"></script>
</body>
</html>
把语句代码放在window.onload函数里面
例如这段代码,虽然script标签没有在最下方,但javascript语句放在了window.onload里面,所以可以在文档加载完成后执行。
<!doctype html>
<html>
<head>
<title>helloWorld--zxk</title>
<script>
window.onload=function(){
alert('页面加载完成!')
}
</script>
</head>
<body>
<div></div>
</body>
</html>
本篇文章主要是对jswindow.onload
加载多个函数和追加函数进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
平时做项目
经常需要使用window.onload,
用法如下:
function
func(){alert("this
is
window
onload
event!")return}
window.onload=func
或者如下:
window.onload=function(){alert("this
is
window
onload
event!")return}
但window.onload
不能同时加载多个函数。
比如:
function
t(){
alert("t")
}
function
b(){
alert("b")
}
window.onload
=t
window.onload
=b
后面会把前面的覆盖,上面代码只会输出
b。
此时可用如下方法解决:
window.onload
=function()
{
t()
b()
}
另一种解决方法如下:
代码如下:
function
addLoadEvent(func)
{
var
oldonload
=
window.onload//得到上一个onload事件的函数
if
(typeof
window.onload
!=
'function')
{//判断类型是否为'function',注意typeof返回的是字符串
window.onload
=
func
}
else
{
window.onload
=
function()
{
oldonload()//调用之前覆盖的onload事件的函数---->由于我对js了解不多,这里我暂时理解为通过覆盖onload事件的函数来实现加载多个函数
func()//调用当前事件函数
}
}
}
//(完整示例)使用如下:
function
t(){
alert("t")
}
function
b(){
alert("b")
}
function
c(){
alert("c")
}
function
addLoadEvent(func)
{
var
oldonload
=
window.onload
if
(typeof
window.onload
!=
'function')
{
window.onload
=
func
}
else
{
window.onload
=
function()
{
oldonload()
func()
}
}
}
addLoadEvent(t)
addLoadEvent(b)
addLoadEvent(c)
//等价于
window.onload
=function()
{
t()
b()
c()
}
个人以为直接使用隐式函数(如:window.onload
=function()
{
t()
b()
c()
})更快捷,当然使用
addLoadEvent
更professional,各取所好吧!
JS
window.onload追加函数:
代码如下:
<script>
if(window.attachEvent)//IE:如果浏览器中存在window.attachEvent函数则使用window.attachEvent函数,判断是否是IE还可以使用:if
(document.all){//..}
window.attachEvent("onload",function()
{alert("add
method")})
else
//FireFox
window.addEventListener("load",function()
{alert("add
method")},true)
</script>
运行,js中alert弹出消息,问题解决。
============相关资料================
attachEvent
将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。
Internet
Explorer
从
5.0
开始提供了一个
attachEvent
方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent
对于目前的
Opera
也适用。但是
Mozilla/Firefox
并不支持这个方法。但是它支持另一个
addEventListener
方法,这个方法跟
attachEvent
差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在
attachEvent
方法中,事件是以
“on”
开头的,而在
addEventListener
中,事件没有开头的
“on”,另外
addEventListener
还有第三个参数,一般这个参数指定为
false
就可以了。