使用Javascript,我想知道在加载页面的其余部分后,将代码加载到页面(没有jQuery)的当前最佳方法是什么。所以像window.onload ......
我正在考虑几个选项,但它们似乎都过时了,并且不完全跨浏览器友好。
这看起来最好吗?它确实有效,我是从online tools得到的,但我认为它来自Scott Andrews
function addEvent(obj, evType, fn) {
if (obj.addEventListener){
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
return false;
}
}
function init () {
// do something
}
addEvent(window, 'load', init);
即使它有效并且通过我的所有测试并且看起来非常灵活,我对这种方法有点担心,因为
1)我不完全理解
2)看起来很旧,scott andrews页面是从2001年开始的!
3)Opera技术支持不喜欢它,请参阅online tools上的“歌剧之声”
这是最好的方法吗?
答案 0 :(得分:1)
/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Caleb Duke | http://www.askapache.com/ */
//------------------------------------
// heavily based on the Quirksmode addEvent contest winner, John Resig
// addEvent
function addEvent(obj,type,fn){
if(obj.addEventListener) obj.addEventListener(type,fn,false);
else if(obj.attachEvent){
obj["e"+type+fn]=fn;
obj[type+fn]=function(){obj["e"+type+fn](window.event);}
obj.attachEvent("on"+type,obj[type+fn]);
}
}
//------------------------------------
// removeEvent
function removeEvent(obj,type,fn){
if(obj.removeEventListener) obj.removeEventListener(type,fn,false);
else if(obj.detachEvent){
obj.detachEvent("on"+type,obj[type+fn]);
obj[type+fn]=null;
obj["e"+type+fn]=null;
}
}