js中替换window.onload的方法 document.ready
来源:互联网 发布:李小璐分享淘宝店链接 编辑:程序博客网 时间:2024/05/16 14:10
通常我们想要在页面内容加载完成后运行 JS 时,都会使用 window.onload 来处理,比如:
<script language="javascript">
window.onload = function () {
alert('Hello World!');
}
</script>
这段代码将在页面载入完成后弹出一个 "Hello World!" 的警告框,但是众所周知,window.onload 的特点是页面元素全部加载完成后才执行,比如页面内有大量的图片之类,当打开网页时,其实相关的 DOM 已经全部加载完成,此时已经可以执行你想要执行的脚本了,可是图片的加载速度要很慢于页面的 HTML,这显然在大多数情况下不是我们想要的。 jQuery 提供一个 $(document).ready(); 来解决此问题,当页面 DOM 加载完成后,ready() 里的函数便会立即执行,但如果我们在不使用 jQuery 的情况下呢?
好了,废话不多说,大家都明白想要什么,以下是来自国外网站的一段代码,功能同等于 jQuery 的 $(document).ready();
看代码:
<script language='javascript'>
(function () {
var ie = !!(window.attachEvent && !window.opera);
var wk = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525);
var fn = [];
var run = function () { for (var i = 0; i < fn.length; i++) fn[i](); };
var d = document;
d.ready = function (f) {
if (!ie && !wk && d.addEventListener)
return d.addEventListener('DOMContentLoaded', f, false);
if (fn.push(f) > 1) return;
if (ie)
(function () {
try { d.documentElement.doScroll('left'); run(); }
catch (err) { setTimeout(arguments.callee, 0); }
})();
else if (wk)
var t = setInterval(function () {
if (/^(loaded|complete)$/.test(d.readyState))
clearInterval(t), run();
}, 0);
};
})();
</script>
<script language='javascript'>
document.ready(function(){
alert('Document is ready!');
});
</script>
打开页面,看到效果没?YES,这就是去掉了 $(); 的 document.ready(); 咱不再依赖 jQuery,但如果你的站点已经使用了 jQuery,就不用再多此一举了。
另外还有一个来自于 PHPWind 论坛程序中某个脚本中的函数片段(由于字数限制,此处省略,详细的可看原文作者:http://www.vgot.net/?A65.htm )
其实 window.onload 也并非是一无用处,很多情况下一些B/S软件需要页面全部加载后才提供用户相关功能,这样 window.onload 就可以提供一种“加载中”的功能,又或者是页面内容很少,完全无需 document.ready(); 根据各种情况,应该合理的使用 onload 和 ready。
- js中替换window.onload的方法 document.ready
- JS 替换 window.onload 的 document.ready
- JS 替换 window.onload 的 document.ready
- JS 替换 window.onload 的 document.ready
- JS 替换 window.onload 的 document.ready
- js中window.onload()与$(document).ready()的对比
- angular.js中window.onload(),$(document).ready()的写法
- Jquery中$(document).ready()与window.onload方法的区别
- js中window.onload 与 jquery中$(document.ready()) 测试
- 传统JS中的window.onload方法和jQuery中的$(document).ready()方法的区别
- js的window.onload和jquery document.ready()的区别
- jQuery 中 $(document).ready()事件与js中window.onload()事件的区别
- jquery (js中window.onload与jquery中$(document.ready())的区别)
- js中window.onload与jquery中$(document.ready())的区别
- jQuery 中 $(document).ready()事件与js中window.onload()事件的区别
- $(document).ready()方法和window.onload()方法
- js自动加载两种方法window.onload和$(document).ready的区别
- jquery的$(document).ready()方法 与 window.onload 的区别
- Camera系统中设置picture大小菜单的流程分析(三)
- uva 11218 - KTV 简单回溯
- UIApplicationMain函数四个参数的含义
- 如何在Ubuntu中自定义键盘快捷[译]
- Failed to Copy Aritfact in Eclipse Ganymede with Workspace Resolution Enabled
- js中替换window.onload的方法 document.ready
- Oracle中Service Name、Database name、Instance Name的区别
- NUC140之设置主频
- C中的增量++和减量--运算符
- 我在赶集网的两个月(职场新人也可以制造传奇)
- 面向对象的static
- iPhone开发【十三】动画效果之最简单的动画——动态加载图片
- Words study
- c中的指针的理解