JS注册事件

使用onload事件往往在body标签上注册,使用:οnlοad=function_name();的方式 不过这种方式只能在IE上使用,若是再FF上,就失去了效果,导致页面会有错误

解决这个问题可使用以下方法

  1.  if(window.addEventListener)
  2.     {
  3.         window.addEventListener('load',init);//FF
  4.     }
  5.     else if(window.attachEvent)
  6.     {
  7.         window.attachEvent('onload',init);//IE
  8.     }
  9.     
  10.     function init()
  11.     {
  12.      //具体操作
  13.     }

这样就分别在不同的浏览器上调用不同的事件注册方法,注册onload事件。

attachEvent和addEventListener不仅可有window对象来调用(这时就是想window对象注册某个事件),也可以由其他对象调用

,如向按钮注册onclick事件,如下:

  1. var btn_obj= document.getElementById("btn1"); 
  2. btn_obj.attachEvent("onclick",method1);
  3. btn_obj.attachEvent("onclick",method2);
  4. btn_obj.attachEvent("onclick",method3);
  5. //执行顺序为method3->method2->method1
  6. //如果是FF,并不支持该方法
  7. addEventListener var btn_obj= document.getElementById("btn1");
  8. btn_obj.addEventListener("click",method1);
  9. btn_obj.addEventListener("click",method2);
  10. btn_obj.addEventListener("click",method3);
  11. //执行顺序为method1->method2->method3
  12. //当然你也可以直接对某个可视化组件设置某种属性的值,仍用button为例
  13. document.getElementById("btn").onclick = method1;
  14. document.getElementById("btn").onclick = method2;
  15. document.getElementById("btn").onclick = method3;
  16. //如果这样写,那么将会只有medhot3被执行
  17. //这就是这种方法和上面注册的方式之间的区别,
  18. //不过一般不会有这么多onclick发生,哈哈

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值