木子屋 Dnawo's BLOG

在不改变原函数前提下对函数进行扩展

👤 dnawo 📅 2008-10-29 👁 4580 👍 0 💬 0 🔄 本站原创
假如一个html页面中引用了一个外部js文件,js文件中定义了window.onload=fun(){},现在的问题是我们不能确定html页面中是否也有定义window.onload=fun(){},并要求html页面中的window.onload仍要能正常执行!下边我们来看看怎么实现(为了方便说明,下边示例js代码都在html页面中):

window.onload = function(){alert("aaa");}
window.onload = function(){alert("bbb");}

上边代码中第二个window.onload定义覆盖了第一个,因而alert("aaa")没有执行,而我们的要求是"aaa"和"bbb"都要弹出来!下边是我想出的一种解决方法:

window.onload = function(){alert("aaa");}

var WindowOnLoad = window.onload ? window.onload : function(){};
window.onload = function(){
	WindowOnLoad();
	alert("bbb");
}

经测试是可行的,但实际使用时必须保证引用外部脚本代码放在页面最底部,否则js文件中的window.onload可能会被覆盖而无法执行。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 base64编码 下一篇 → 在DOM对象后面插入一个同级对象