| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2692 人关注过本帖
标题:addLoadListener与addEventListener
只看楼主 加入收藏
fujinliang
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-30
结帖率:0
收藏
 问题点数:0 回复次数:4 
addLoadListener与addEventListener
function addLoadListener(fn)
{
    if(typeof window.addEventListener !='undefined')
    {
        window.addEventListener('load',fn,false);
    }
    else if(typeof document.addEventListener !='undefined')
    {
        document.addEventListener('load',fn,false);
    }
    else if(typeof window.attachEvent !='undefined')
    {
        window.attachEvent('onload',fn);
    }
    else
    {
        var old=window.onload;
        if(window.onload !='function')
        {
            window.onload=fn;
        }
        else
        {
            window.onload=function()
            {
                old();
                fn();
            }
        }
    }
}
function addEventListener(target,eventType,functionRef,capture)
{
    if(typeof target.addEventListener !="undefined")
    {
        target.addEventListener(eventType,functionRef,capture);
    }
    else if(typeof target.attachEvent !="undefined")
    {
        target.attachEvent("on"+eventType,functionRef);
    }
    else
    {
        eventType="on"+eventType;
        if(typeof target[eventType] =="function")
        {
            var old=target[eventType];
            target[eventType]=function()
            {
                old();
                return functionRef();
            };
        }
        else
        {
            target[eventType]=functionRef;
        }
    }
}
addLoadListener(x);
function x()
{
alert("xx");
}
而删除addEventListener,又能执行得么,,不晓得是什么原因,,与addEventListener有什么关系?
请高手解答
搜索更多相关主题的帖子: undefined function false 
2008-08-11 19:01
fujinliang
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-30
收藏
得分:0 
上面的alert执行不到,,要删除addEventListener才能执行得到,不用监听器,直接用window.onload=xx;又得行,是冲突了嘛
2008-08-11 19:05
fujinliang
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-30
收藏
得分:0 
如果是冲突,那怎么样调用addEventListener来处理load事件
2008-08-11 19:11
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
你自定义的addEventListener,为global作用域下的函数,即任何在global作用域下定义的变量或函数,其实是会自动成为window的成员变量或函数,即比如

var member = function() {}
则不但可以通过member()来访问,同样可以通过window.member()来访问

而你自定义的addEventListener,覆盖了原有的window.addEventListener

解决办法是用一个对象来包含这两个方法

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2008-08-12 10:04
fujinliang
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-30
收藏
得分:0 
谢谢!就只改哈第二个function函数名就可以了
2008-08-13 15:15
快速回复:addLoadListener与addEventListener
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036211 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved