js 自己创建ready多个可以依次加载
2015-07-30 17:06
555 查看
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>
相关文章推荐
- javaScript学习之ajax
- javascript return false 详解
- Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
- PHP javascript cookie
- javascript中递归函数用法注意点
- js关闭页面不提示
- JavaScript之正则表达式入门
- html js form
- js document
- 简单强大的javascript表单验证 - Parsley.js
- jsp九个内置对象
- JSP基础(二)JSP语法概述
- jsp三大指令
- JSP的7个动作include,forward,useBean。。。
- 笔记一把,JS闭包的典型实例
- JavaScript之表单验证(2)(正则表达式)
- JavaScript中递归函数用法需要注意的
- js验证身份证
- 如何在编辑器里添加CSS或JS代码
- 写高性能JavaScript