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

假如一个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可能会被覆盖而无法执行。

上一篇: base64编码
下一篇: 在DOM对象后面插入一个同级对象
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 3930
发表评论
登录后再发表评论!