全兼容替代浏览器body onload事件的方法

2009年8月26日 | 标签: ,

最近做了一个漂浮面板,实现的功能就是拖动滚动条的时候该面板相对固定在页面的某一位置。找了一段简单的代码很容易就实现,但其中一个小问题引起我的注意。原来用到的js是在body 里通过onload来实现的,但现在的小页面可以定要嵌入到其他页面,如果还是使用这样的方式,容易和其他事件发送冲突,即使现在不会以后维护起来也不方便,于是就想着是否可以通过其他方法来替代onload方法。

由于自己对js尚处于入门阶段,所以请教了下身边的高手,探得两种解决方法:

其一:

  1. window.onload=function(){functionName()}//通用body onload方法

其二:

  1. function LoadattachEvent(o,name,fun)//更兼容的body onload方法 {  return document.all ? o.attachEvent(name,fun) : o.addEventListener(name.substr(2),fun,false); }  LoadattachEvent(window,"onload",functionName);

第一种方法简单明了,一句话即可实现该功能;但适用在该函数没有带参数的情况,如果带参则无法实现。

而第二种方法就相对比较保险,带参不带参均可使用,扩展性比较好,就是敲的代码多了些。

 不过两种方法的兼容性都很好,在各主流浏览器下全兼容。

如果你有更好的方法,别忘了告诉下俺,让俺也学一招。。。

点击查看效果:demo演示

 

  1. 2011年10月26日09:53

    不是很懂这个东西 :cry:

  2. sasumi
    2009年12月29日10:10

    說白了就是event bind

    • 2009年12月29日16:07

      我对event bind还不甚了解,还望朋友赐教一二 :mrgreen:

  3. 2009年9月5日15:21

    也不用敲代码拉
    直接复制你的就OK了~

    hzhjun 于 2009-9-9 12:27:15 回复

    呵呵,希望对你有帮助!

  4. 2009年9月2日18:40

    你这个代码独立显示是怎么弄的啊,我也想弄个。

    hzhjun 于 2009-9-3 0:31:53 回复

    是用了FCK编辑器的插件,具体你可以参考:
    http://bbs.rainbowsoft.org/thread-29568-1-1.html

  5. 2009年8月30日13:51

    不错哦。。来学习了。。

    hzhjun 于 2009-8-31 11:14:34 回复

    多谢捧场,相互学习~

  6. 2009年8月29日23:41

    这个太专业了,不懂!

  7. 2009年8月26日21:22

    你这个牛哈

    hzhjun 于 2009-8-26 23:27:37 回复

    哈,俺这是班门弄斧。。。