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);
}
})();
分享到:
相关推荐
老外写的焊接机器人程序.zip西门子PLC编程实例程序源码下载老外写的焊接机器人程序.zip西门子PLC编程实例程序源码下载老外写的焊接机器人程序.zip西门子PLC编程实例程序源码下载老外写的焊接机器人程序.zip西门子PLC...
老外写的ADO封装类,超全面,使用简单。经过长期测试,使用中相当稳定。
【标题】"一个老外写的HtmlEditor"是一个国外开发者创建的HTML编辑器,它提供了丰富的功能,便于用户创建和编辑HTML文档。这个编辑器可能是开源的或者免费供个人使用,旨在简化网页设计过程,提高开发效率。 【描述...
这个"老外写的一个flash时间类"旨在提供一个更精确的时间控制工具,以改善标准的ActionScript 3(AS3)Timer类可能存在的精度问题。下面我们将深入探讨这个时间类的相关知识点。 1. **ActionScript 3 Timer类**: ...
完成端口 网络模型 实现 程序 老外写的很好的一个程序
此外,“O(nlogn)”在英文中应写为“O(n log n)”,以符合国际标准格式。 5. **过度使用被动语态**: - **例子**:“It was observed that the method performs well under certain conditions.” - **改进后**:...
老外写的翻页效果 leaves老外写的翻页效果 leaves
老外写的程序软件,老外写的程序软件,老外写的程序软件老外写的程序软件
老外写的文件粉碎源码
【标题】:“老外写的ListView” 在Android开发中,ListView是一个非常重要的视图组件,它允许开发者在屏幕上显示大量的数据,通常以列表的形式呈现。这个标题提到的是一个由非中国开发者(老外)编写的ListView...
标题中的“老外写的3DES不错”表明这是一个关于3DES加密算法的外国作者编写的代码或教程。3DES,即三重数据加密标准(Triple DES),是基于原始数据加密标准(DES)的一种加强版本,旨在提供更强的安全性。在描述中...
标题中的“3ds文件读写库老外写的”指的是一种专门用于处理3DS格式文件的库,由非中文国家的开发者编写。3DS文件格式是Autodesk 3ds Max软件广泛使用的三维模型存储格式,包含了场景、模型、材质、纹理、灯光等信息...
【标题】"老外写的类似Msn酷控件原码" 涉及到的核心知识点主要是MSN Messenger(或简称MSN)客户端的用户界面组件开发,尤其是控件的创建与实现。MSN作为一款曾经广泛使用的即时通讯软件,其界面设计和交互体验在...
标题 "ifix5.0老外写的例子" 指向的是一个使用IFix 5.0版本开发的应用程序示例,特别关注于水处理领域的工业自动化控制。IFix(Industrial Interactive Fix)是GE Digital推出的一款先进的组态软件,用于构建、监控...
该压缩包文件“基于PHP的Mysql 老外写的类似祝福墙的Ajax程序.zip”包含了一个使用PHP、MySQL和Ajax技术开发的互动祝福墙应用。这个应用可能是一个示例或者教程,帮助开发者学习如何结合这些技术来创建动态、实时的...
老外写的分割算法好 还不错 有需要的下来看看
《老外写的嵌入式测试书》是一本深入探讨嵌入式系统测试的专业书籍,它由国外资深专家撰写,以其全面性和深度深受测试人员推崇。这本书不仅覆盖了基础的测试理论,还深入到了嵌入式系统的独特测试挑战,旨在帮助读者...
在“老外写的一个ASP.NET聊天室”中,我们可以探讨ASP.NET在实现在线实时交流平台中的应用。 首先,聊天室的核心功能包括用户注册、登录、发送和接收消息。在ASP.NET中,可以使用C#或VB.NET作为后端编程语言来处理...
这个"老外写的42个QT例子"压缩包,可能包含一系列用于学习和理解QT编程的示例项目。这些例子通常会涵盖QT库中的不同模块和功能,帮助初学者逐步掌握QT开发的基本概念和技巧。以下是可能包含的一些关键知识点: 1. *...
【标题】"老外写的图表类"是一款专用于生成各种数据可视化图表的库,它能够帮助程序员轻松地创建出美观的饼图、柱状图等多种图表类型。这个库的亮点在于其精美的设计和易用性,使得数据分析结果能够以直观、吸引人的...