js 自己创建ready多个可以依次加载
js会把相同的方法名给覆盖了,很多时候我们都无法再页面加载的时候写多个onload事件,这样只有最后一个才能起效,所以从网上找了找,最后决定自己写一个,例子很简单,希望有高人来指导指导
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>javascript_window.ready</title>
</head>
<body>
<script type="text/javascript"> (function(w){
w.readyLength=0;
w.readyFunction=[];
w.ready=function(load){
w.readyFunction[w.readyLength]=load;
w.readyLength++;
}
w.init=function(){
clearInterval(w.readyById);
w.readyFunction.reverse();
while(w.readyFunction.length-1>=0){
w.readyFunction[w.readyFunction.length-1]();
w.readyFunction.pop();
w.readyLength--;
}
}
if('onreadystatechange' in w.document){
w.document.onreadystatechange=onreadystatechange;
}else{
w.readyById = setInterval(onreadystatechange,10);
}
function onreadystatechange(){
console.log(w.document.readyState)
if(w.document.readyState == "complete"){
setTimeout(init,1);
}else if(w.document.addEventListener){
w.document.addEventListener( "DOMContentLoaded", init, false );
w.addEventListener('load',init,false)
}else{
document.attachEvent( "onreadystatechange", init );
w.attachEvent('onload',init)
}
}
}(this));
(function(){
window.ready(function(){
console.log('ready1')
});
window.ready(function(){
console.log('ready2')
}) window.ready(function(){
console.log('ready3')
})
}());;; </script> </body>
</html>
js 自己创建ready多个可以依次加载的更多相关文章
- 学习 easyui 之二:jQuery 的 ready 函数和 easyloader 的加载回调函数
Ready 事件不一定 ready 使用 easyloader 的时候,必须要注意到脚本的加载时机问题,easyloader 会异步加载模块,所以,你使用的模块不一定已经加载了.比如下面的代码. &l ...
- Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库 本文地址:https ...
- 【Android】纯代码创建页面布局(含异步加载图片)
开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 F ...
- 创建控制器的方法、控制器加载view过程、控制器view的生命周期、多控制器组合
在介绍四大对象的那篇博客中,可以基本了解到程序启动的过程: main-->UIApplicationMain-->创建UIApplication的实例和app代理AppDelegate的实 ...
- jquery的ready方法(DOM是否加载完)详解与使用
jquery的ready方法(准备DOM触发)还是比较复杂的,我们先看流程图:
- jQuery效果之jQuery实现图片的依次加载图片
css代码: ;;} ul#portfolio li{float: left;margin:0 5px 0 0;width:250px;height: 250px;list-style: none;} ...
- jquery实现图片的依次加载图片
css代码: ul#portfolio{margin:0;padding:0;} ul#portfolio li{float:left;margin:0 5px 0 0;width:250px;hei ...
- Vue.js 开发实践:实现精巧的无限加载与分页功能
本篇文章是一篇Vue.js的教程,目标在于用一种常见的业务场景--分页/无限加载,帮助读者更好的理解Vue.js中的一些设计思想.与许多Todo List类的入门教程相比,更全面的展示使用Vue.js ...
- 原生js移动端touch事件实现上拉加载更多
大家都知道jQuery里没有touch事件,所以在移动端使用原生js实现上拉加载效果还是很不错的,闲话不多说,代码如下: //获取要操作的元素 var objSection = document.ge ...
随机推荐
- BOOL布尔类型
1.BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量只有YES和NO两个值.YES表⽰示表达式结果为真,NO表示表达式结果为假. 2.在C语言中,认为非0即为真. 3.分⽀支语句中,经常 ...
- LeetCode Combination Sum II (DFS)
题意: 在集合candidates中选出任意多个元素,使得他们的和为target,返回所有的组合,以升序排列. 思路: 难点在于如何去重,比如集合{1,1,2},target=3,那么只有一个组合就是 ...
- setInterval 函数传参(方法一)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- sublime text3 本地化
博客園中搜到n篇 同題日誌 沒一篇靠譜 超級反感這種行為,浪費別人的時間無異於謀財害命 自動: Control+` (注意不是cmd+p) import urllib.request,os,hashl ...
- iOS8适配工作
1 按钮,菜单文字被加上下划线的问题. 2 状态栏被遮挡的问题.(iPhone6明显,iPhone4S无) 3 使用xcode6最新版本进行编译出现的通知无法呈现的问题(也不进行提示) 4 权限检测( ...
- 5 款傻瓜式手机 APP 开发工具
http://www.oschina.net/news/21552/5-app-creators
- python3获取当前目录(转)
转自:http://www.elias.cn/Python/GetPythonPath?from=Develop.GetPythonPath 1. 以前的方法 如果是要获得程序运行的当前目录所在位置 ...
- php随笔杂记(一)
1.在function updatepwd($postData=array()) 如果参数是一个数组, 在使用时,如果给他赋值则只返回数组名$postData即可 ,如果里面已有值 ,这返回的可 ...
- spark共享变量
boradcast例子代码: scala版本 spark共享变量之Accumulator 例子代码: scala版本
- 卸载linux自带版本JDK
1)卸载系统自带的jdk版本: 查看自带的jdk: #rpm -qa|grep gcj 可能看到如下类似的信息: libgcj-4.1.2-44.el5 java-1.4 ...