刚才看Jquery源码时,看见如下,一段不明白,上网一搜,豁然开朗啊
// The DOM ready check for Internet Explorer
function doScrollCheck() {
if ( jQuery.isReady ) {
return;
}
try {
// If IE is used, use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
document.documentElement.doScroll("left");
} catch(e) {
setTimeout( doScrollCheck, 1 );
return;
}
// and execute any waiting functions
jQuery.ready();
}
“document.documentElement.doScroll("left")”是干啥用的,
http://www.cnblogs.com/maklove/ 介绍如下,不写了,copy如下。
“在大部分前端开发中,需要在DOM树载入时马上执行一些函数,但又不愿意仅为了这一个需求而引入整个jQuery库,于是就把jQuery的ready方法提取出来,单独使用了。
当然大家可以使用windows.onload事件, 但onload在浏览器看来,就是页面上的东西(img,iframe等资源)全部都加载完毕后才能发生,
如果页面内有大的图片的话,会在页面展现后好久时间后才执行。
如果只需要对DOM进行操作,那么这时就没必要等到页面全部加载了。我们需要更快的方法。
Firefox有DOMContentLoaded事件可以轻松解决,可惜的就是IE没有。
MSDN关于JSCRIPT的一个方法有段不起眼的话,当页面DOM未加载完成时,调用doScroll方法时,会产生异常。
那么我们反过来用,如果不异常,那么就是页面DOM加载完毕了!
所以 对于Mozilla & Opera 浏览器,在dom树载入后有现成的 DOMContentLoaded 事件
对于Safari 浏览器,有document.onreadystatechange事件,
当该事件触发时,如果 document.readyState=complete时,可视为dom树已经载入
对于ie,当在iframe内时,同样有document.onreadystatechange事件,
对于ie在非iframe内时,只有不断地通过能否执行doScroll判断dom是否加载完毕。
在本例中每间隔5毫秒尝试去执行 document.documentElement.doScroll('left')
另外要注意一点:在ie8下,貌视非iframe窗口也会有document.onreadystatechange事件,另外你也可以在构建自己的JS框架时使用此函数.”
貌似说的有道理,暂且认为就是这样,以后实验后,在总结
分享到:
相关推荐
jquery开发入门/1 1.1 jquery概述/2 1.1.1 认识jquery /2 1.1.2 jquery基本功能/2 1.1.3 搭建jquery开发环境/3 1.1.4 编写第一个简单的jquery应用/3 1.1.5 jquery程序的代码风格/5 1.2 jquery的简单...
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML CSS JavaScript / DOM 如果您希望首先学习这些项目,...
接下来回到最开始的jQuery.extend函数(268行)中的ready(fn)的定义。这个函数用来处理DOM加载完成的事件。差不多是jQuery最常用的函数之一了。
+ jQuery:主要用到 jQuery 的 ajax 方法处理异步请求和 DOM 操作 【后端】 + php:动态交互的服务器端脚本语言,本项目没有用到php框架,纯原生,主要用于数据库操作,响应并返回要用到的数据 + Apache:跨平台...
JQuery事件之页面框架和加载后自动执行 JQuery扩展以及自动执行函数的应用 JQuery阻止事件发生 JQuery扩展 作业 第18周 内容概要 JS正则详解 JS正则详解之验证 组件BootStrap、EasyUI、JQueryUI 插件轮播 Django_...
一、ready函数的实现经常用jQuery类库或其他类库中的ready方法,有时候想想它们到底是怎么实现的,但是看了一下jQuery中的源码,涉及到的模块比较多,(水平有限)代码比较难看懂;自己结合了一些书籍内容,总结一下。...
今天闲来无事研究研究jQuery.ready()的内部实现,看JQ的源码一头雾水,由于自己很菜了,于是翻了翻牛人的播客,讲述详细,收获颇多。 先普及一下jquery.ready()和[removed],[removed]事件是在页面所有的资源都加载...
通常出现这种状况有几种解决方法: 1:查看是否引入jquery文件 就算引入了文件了是不是...将jQuery库放在依赖于jQuery的JavaScript脚本之前,并且将这些代码放入document.ready来确保DOM加载完毕。 <script type="tex
发送 AJAX 请求获取 JSON 数据,并通过 Dom 动态加载页面;使用了 Spring - Test 与Junit 编写单元测试代码;使用了 Restful 设计风格,以 AJAX 发送 PUT 与 DELETE 类型请求;采用了双端校验,前端校验 JQuery,...
发送 AJAX 请求获取 JSON 数据,并通过 Dom 动态加载页面;使用了 Spring - Test 与Junit 编写单元测试代码;使用了 Restful 设计风格,以 AJAX 发送 PUT 与 DELETE 类型请求;采用了双端校验,前端校验 JQuery,...
昨天用jQuery插件aeImageResize,发现它更有优势:每张图片加载完后,会马上进行等比缩放。 这归于图片对象Image的加载事件onload的功劳。 查看插件的源码,发现它也依赖图片对象的complete属性和onload事件,并且...
jQuery AJAX框架-查询DOM对象,简洁,现成控件较少 ExtJS extjs.com 比较全面的AJAX框架 树,菜单,表格编辑器(Grid)学习比较困难 -->显示公告(页面内弹出窗口) 1. 导入CSS和EXT的JS 2. 写Ext.onRead 3. 写入功能...
本书不仅适合初学者系统学习,也适合有经验的 JavaScript 开发者随手翻阅。 作者简介 DavidFlanagan是一名程序员,也是一名作家,它的个人网站是 。他在O’Reilly出版的其他畅销书还包括《JavaScriptPocket ...
一直苦于没有好的国籍控件可以用,于是抽空写了一个国籍控件,现分享给大家。 主要功能和界面介绍 国籍控件主要支持中文、英文过滤以及键盘上下事件。 源码介绍 国籍控件核心是两个文件,navtionality.js 和 mian....
python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和...
微思象棋播放器是一个基于jQuery开发的简单迷你并且高效的在线中国象棋棋谱播放器,基于网络访问并且兼容IE 7.0 ,Firefox 3.0 ,Opera 9.6 ,Chrome 1.0 ,Safari 3.22 ,并对IE 6.0提供部分支持。微思象棋播放器完全...
加载js文件前请确保jquery已正确加载并配置为全局变量,否则workflow不会进行初始化 目录 demo-- 事例目录 dist-- 代码文件目录 |- dom.jsPlumb-1.6.2.js为依赖库 |- workflow.js为未压缩代码 - workflow.min.js...
在页面加载或用户输入时触发其他对象包括: 一个绑定对象,它在渲染的 DOM 元素上设置事件侦听器,并回调控制器一个 sudoStates 对象,用于保存起始配置(维基百科示例板)作为初始化板对象的输入###使用的技术(和...
注:官方帮助文档的原文中对该事件的描述中有这样一句:“If you return 'true' or do not return any value then the upload proceeds.”,从中可以看到既定的设计是当不返回任何值的时候应该等同于返回true,...