思路一:延时加载
在使用的时候再判断该用哪个方法,并且在判断完了之后改写函数。之后再调用的时候,可以按照检测之后得结果进行操作。
var addHandler = function(target,eventType,handle){
if(target.addEventListener){
addHandler = function(target,eventType,handler){
target.addEventListener(eventType,handler,false);
}
}else{
addHandler = function(target,eventType,handler){
target.attachEvent('on'+eventType,handler);
}
}
addHandler(target,eventType,handler);
}
调用延时加载函数,第一次会消耗较长的时间,因为会运行监测再调用另一个函数完成。但是之后执行的函数会更快。
思路二:条件预加载
在脚本加载期间提前检测,而不会等到函数执行的时候。
var addHandler = document.body.addEventListener ? function(target,eventType,handler){target.addEventListener(eventType,handler,false);}
: function(target,eventType,handler){target.attachEvent('on'+eventType,handler);};
适用于一个函数马上就要用到,并且在页面的整个生命周期频繁使用的场合。