源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js window.onload 加载多个函数和追加函数详解

  • 时间:2021-02-03 14:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js window.onload 加载多个函数和追加函数详解
平时做项目 经常需要使用window.onload, [b]用法如下:[/b] function func(){alert("this is window onload event!");return;} window.onload=func; [b]或者如下: [/b] window.onload=function(){alert("this is window onload event!");return;} 但window.onload 不能同时加载多个函数。 [b]比如:[/b] function t(){ alert("t") } function b(){ alert("b") } window.onload =t ; window.onload =b ; 后面会把前面的覆盖,上面代码只会输出 b。 [b]此时可用如下方法解决: [/b]window.onload =function() { t();  b(); } [b]另一种解决方法如下: [/b]
[u]复制代码[/u] 代码如下:
 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,各取所好吧! [b]JS window.onload追加函数:[/b]
[u]复制代码[/u] 代码如下:
<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弹出消息,问题解决。 [b]============相关资料================[/b] attachEvent   将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部