window..onload的是页面加载完成后执行的事件,而且winodw.onload不能多次执行,jquery的$(fn)解决了这个问题,但是不使用jquery的情况下呢?以下是老外写的解决办法
/*
* (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig
* Special thanks to Dan Webb's domready.js Prototype extension
* and Simon Willison's addLoadEvent
*
* For more info, see:
* http://www.thefutureoftheweb.com/blog/adddomloadevent
* http://dean.edwards.name/weblog/2006/06/again/
* http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
* http://simon.incutio.com/archive/2004/05/26/addLoadEvent
*
*
* To use: call addDOMLoadEvent one or more times with functions, ie:
*
* function something() {
* // do something
* }
* addDOMLoadEvent(something);
*
* addDOMLoadEvent(function() {
* // do other stuff
* });
*
*/
addDOMLoadEvent = (function(){
// create event function stack
var load_events = [],
load_timer,
script,
done,
exec,
old_onload,
init = function () {
done = true;
// kill the timer
clearInterval(load_timer);
// execute each function in the stack in the order they were added
while (exec = load_events.shift())
exec();
if (script) script.onreadystatechange = '';
};
return function (func) {
// if the init function was already ran, just run this function now and stop
if (done) return func();
if (!load_events[0]) {
// for Mozilla/Opera9
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", init, false);
// for Internet Explorer
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete")
init(); // call the onload handler
};
/*@end @*/
// for Safari
if (/WebKit/i.test(navigator.userAgent)) { // sniff
load_timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState))
init(); // call the onload handler
}, 10);
}
// for other browsers set the window.onload, but also execute the old window.onload
old_onload = window.onload;
window.onload = function() {
init();
if (old_onload) old_onload();
};
}
load_events.push(func);
}
})();
分享到:
相关推荐
一个老外写的HtmlEditor,很不错!!
老外写的ADO封装类,超全面,使用简单。经过长期测试,使用中相当稳定。
老外写的一个flash时间类,还比较准确了哟。。。
老外写的焊接机器人程序.zip西门子PLC编程实例程序源码下载老外写的焊接机器人程序.zip西门子PLC编程实例程序源码下载老外写的焊接机器人程序.zip西门子PLC编程实例程序源码下载老外写的焊接机器人程序.zip西门子PLC...
中国工程师写英文时最常犯的错误 The Most Common Habits from more than 200 English Papers written by Graduate Chinese Engineering Students 17页
老外写的翻页效果 leaves老外写的翻页效果 leaves
老外写的程序软件,老外写的程序软件,老外写的程序软件老外写的程序软件
老外写的3DES不错老外写的3DES不错老外写的3DES不错
老外写的42个QT例子老外写的42个QT例子
几个老外写的ado,dao,odbc数据库操作类的vc代码
老外写的图表类,可以生成饼图、柱图等图表,非常漂亮。
老外写的文件粉碎源码
老外写的一个ListView控件,感觉很不错,用的时候请找Ntest的DLL
老外写的类似Msn酷控件原码. 老外写的类似Msn酷控件原码
老外写的,值得参考android 学习参考
老外写的Socket hook代码,有了这个你可以写出自己的socket调试工具。
超清晰android界面开发电子书(老外写的) 入门级别的,如果想学习andr开发的同学可以参考写写不错语言简单
俄罗斯方块 老外写的俄罗斯方块 开发的功能比较全面,代码思路清晰,只分了个三个类.很有用
老外写的测试书,非常全面、详细,是测试人员应该读的