首先说一下onload的一个特点:只能有一个onload执行。这就要求我们不能通过onload="function()"来调用多个函数。
这里通过查找到的资料,有这种方式:
Js代码
- <script>
- 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();
- alert(oldonload);//这是添加的测试代码
- func();
- }
- }
- }
- addLoadEvent(t);
- addLoadEvent(b);
- addLoadEvent(c);
- </script>
<script>
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();
alert(oldonload);//这是添加的测试代码
func();
}
}
}
addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
</script>
这里的alert(oldonload)详细记录了函数内部发生的变化:
addLoadEvent(t)执行后会包含t()函数,addLoadEvent(b)会包含t(),b()函数,addLoadEvent(c)却包含了 t(),b(),c()三个函数。
但是到了最后,只有addLoadEvent(c)才可以通过window.onload产生执行的函数效果。