解决不同js之间冲突windows.onload

今天在修改分享功能按钮的时候,发现导航栏渐隐效果失效,去除分享按钮js后正常。看来是两js之间发生了冲突,通过google找到解决办法,下面把原文整过来:

window.onload的意思是当页面加载完毕的时候执行。通常把JS脚本放在任意的位置,通过window.onload来执行脚本。但是当同一个页面里出现了两个window.onload=function(){};,就会发现先读的脚本失效了。通常一个页面是只能执行一个window.onload的,这个时候可以通过下面的方法解决:

用window.attachEvent和window.addEventListener。

当某一事件被触发时需要执行某个函数,在IE下可用attachEvent,在FF下则要用addEventListener。

attachEvent()有两个参数,第一个是事件名称,第二个是需执行的函数;

addEventListener()有三个参数,第一个是事件名称,但与IE事件不同的是,事件不带”on”,比如”onsubmit”在这里应为”submit”,第二个是需执行的函数,第三个参数为布尔值;

if (document.all){
window.attachEvent('onload',函数名)//IE中
}
else{
window.addEventListener('load',函数名,false);//firefox
}

以上代码直接用,把调用函数名替换上;chrome、firefox、IE、Safari都通过兼容测试。

原文地址:http://www.hopestudio.cn/hope/Education/ShowArticle.asp?ArticleID=8342

此条目是由 malu8 发表在 未分类 分类目录的。将固定链接加入收藏夹。

评论已关闭。