Dom加载判断,兼容所有浏览器
Dom 加载完毕,兼容所有浏览器
Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。
IE6、IE7 我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading 、loaded、interactive、complete)
当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。
Opera 支持 onreadystatechange
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
if(document.attachEvent){
document.onreadystatechange=function(){
if(document.readyState == 'loaded'||document.readyState=="complete"||document.readyState=='interactive'){
document.getElementById("imgdivid").style.display="none";
Start();
}
};
}
else{
document.addEventListener("DOMContentLoaded",Start,false); //非IE
}
function Start(){
alert("document.readyState=" + document.readyState + "\nYes,I'm running");
}//]]>
</script>
</head>
<body>
<div align="center" id="imgdivid">
<img src="wait.gif">
</div>
</body>
</html>
上面的代码若果不好,你可以封装自己的包里 底下是我写的类
dload2.js
/**
* @author duping
* Administrator
*/
var duduppp=function(){
function domReady(){
var arr=new Array();
if(arguments.length>0){
for (var i = 0; i < arguments.length; i++) {
arr[i]= arguments[i];
}
}
if(document.all){
document.onreadystatechange=function(){
/*document.readyState=="complete"||document.readyState=='interactive'
* 这样写会加载2次,先加载interactive 之后再加载complete
* 如过要求效率的话写成interactive, opera 没有反应,opera 没有interactive 直接到complete
* 所以 另写了
*/
if(document.readyState=='loaded'||document.readyState=="complete"){
// alert(arr[0]+"------------IE--------------------");
Start(arr);
}
}
}
else{
// alert(arr[0]+"------------NO--IE--------------------");
document.addEventListener("DOMContentLoaded",Start(arr),false);
}
function Start(arr){
for(var i=0;i<arr.length;i++){
if(typeof arr[i]=='function'){
arr[i]();
}
}
}
}
return {domReady:domReady
}
}();
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript" src="js/dload2.js"></script>
<script language="JavaScript" type="text/javascript">
function test1(){
var name=document.getElementById("name").value;
alert("my method is right"+name);
}
function test2(){
alert("生活需要激情!");
}
duduppp.domReady(test1,test2);
</script>
</head>
<body>
<input type="text" id="name" value="1234">
</body>
</html>
转自:http://hi.baidu.com/duduppp/blog/item/a2fb4ad43849c313a18bb795.html
发表评论
-
[转:]jQuery焦点中国地图
2013-04-17 11:05 1670转自:http://xiaoyaosr.blog.51cto ... -
一个轻量级的网页遮罩层jQuery插件
2012-11-14 17:48 6365一个轻量级的网页遮罩层jQuery插件 分 ... -
通过Spring Mail Api发送邮件
2012-11-14 17:47 1435通过Spring Mail Api发送邮件 ... -
jquery.validate
2012-11-09 16:51 1062jquery.validate 需要JQuery ... -
Hibernate commit() 和flush() 的区别(转)
2012-09-28 09:46 2625Hibernate commit() 和flush( ... -
maven3.0.2下settings.xml配置下(转)
2012-09-25 19:14 5928maven3.0.2下settings.xml配置下 ... -
hibernate中Qurey类的setDate方法自动截掉时分秒——setDate和setTimeStamp(转)
2012-09-03 10:30 3062原帖地址:http://www.iteye.com/to ... -
Maven3.0.3的环境变量配置
2012-07-19 11:22 3016转自http://hi.baidu.com/douxinchu ... -
转:org.apache.catalina.core.JreMemoryLeakPreventionListener解决办法
2012-07-18 15:38 5513转自:http://blog.csdn.net/ang ... -
eclipse中的java文件图标j成空心
2012-07-06 10:06 13530eclipse中的java文件图标j成空心 ... -
jQuery - Ajax - readyState获取请求操作的当前状态
2012-06-29 14:46 0jQuery - Ajax - readyState获取请求 ... -
document.readyState几种状态及示例
2012-06-29 14:33 1967document.readySta ... -
DOM Ready 详解
2012-06-29 14:03 3081转自:http://www.cnblogs.com/zhang ... -
转】js实现另存为的方法
2012-06-29 13:42 2909转】js实现另存为的方法 本文转自http://www ... -
js添加和去除千分号
2012-06-22 11:41 2116利用js的replace方法和正则表达式实现 1 ... -
Hibernate的游离态与持久态转换(转)
2012-06-18 10:30 5203本文转自:http://blog.csdn.net/sdban ... -
maven继承parent,relativePath warn信息的解决办法
2012-06-11 17:12 25978转自:http://blog.sina.com.cn/s/bl ... -
使用Maven管理Eclipse Java项目
2012-06-11 17:10 1064转自:http://www.blogjava.net/lost ... -
The parent project must have a packaging type of POM
2012-06-11 17:09 25248The parent project must ha ... -
(转)利用eclipse构建和部署maven工程
2012-05-31 12:44 2342本文转自http://ll-feng.iteye.c ...
相关推荐
标题中的“完美弹出窗口 兼容所有浏览器”意味着这个解决方案旨在确保在各种主流浏览器(如Chrome、Firefox、Safari、Edge和Internet Explorer)中一致的表现。跨浏览器兼容性是Web开发中的一个重要考虑因素,因为...
本项目"弹出层兼容所有浏览器"是基于jQuery实现的,旨在确保在各种不同的浏览器环境下都能正常工作。下面将详细讨论弹出层的基本概念、jQuery在其中的作用以及如何实现跨浏览器兼容性。 首先,弹出层通常包含对话框...
此外,盒模型的差异也需要处理,确保在所有浏览器中元素的尺寸计算一致。 4. **日期和时间处理**:JavaScript的内置`Date`对象在处理日期和时间时可能在不同浏览器中表现不一。使用可靠的库,如`moment.js`,可以...
"兼容所有浏览器的旋转插件"这个主题就是针对这一问题的一个解决方案。它利用jQuery库和CSS技术来实现一个功能,使得元素能够在包括Internet Explorer 6及更高版本在内的各种浏览器上进行旋转展示。 首先,jQuery是...
iFrame 自适应高度(兼容所有主浏览器) iFrame 自适应高度是前端开发中常见的问题,很多开发者在搜索引擎中搜索相关解决方案,但大多数文章只能解决静态高度的问题,而忽视了 JS 操作 DOM 之后的动态同步问题。...
例如,使用`window.onload`或`$(document).ready`确保DOM加载完成后再执行脚本;对于CSS,可以使用浏览器前缀(如 `-webkit-`,`-moz-` 等)来支持旧版本的浏览器;对于JavaScript,可以使用polyfill库,如Modernizr...
本文将深入探讨如何创建一个兼容多浏览器的JS日期控件,以及涉及的相关知识点。 首先,我们需要理解浏览器之间的兼容性问题。不同的浏览器可能对JavaScript的某些API或CSS样式处理有所不同,这给开发者带来了挑战。...
标题 "兼容所有浏览器的点击复制功能(请在服务器上测试)" 涉及的核心技术是利用jQuery和Flash实现跨浏览器的文本复制功能。在Web开发中,由于浏览器的安全策略和差异,直接通过JavaScript操作剪贴板的功能并不总是...
标题"大图jQuery多屏首页焦点图代码,兼容主流浏览器"涉及到的是一个前端开发技术问题,特别是网站首页面设计。焦点图,也称为轮播图或幻灯片,是一种常见的网页元素,用于展示一组图片或内容,并在用户交互下自动或...
本文将详细介绍一个兼容所有浏览器的jQuery圆角插件的使用和实现原理。 **1. 插件介绍** 标题中的"兼容所有浏览器的jQuery圆角插件"指的是一个专门用于使HTML元素(如div)具有圆角效果的JavaScript插件。它利用...
标题中的“回到顶部和回到底部特效-jquery锚点移动兼容所有浏览器”指的是在网页设计中,使用jQuery库实现的一种用户交互功能。这种功能允许用户快速地通过点击按钮或者使用其他交互方式,轻松地返回页面顶部或底部...
综上所述,创建一个兼容浏览器的JavaScript幻灯片涉及的知识点广泛,包括DOM操作、事件处理、CSS样式控制、浏览器兼容性处理以及性能优化等。通过这些技术,我们可以为用户提供一个既美观又实用的网页幻灯片展示效果...
该插件的主要优势在于其对IE6的良好兼容性,解决了在旧版浏览器中常见的布局问题。 在使用传统的CSS fixed定位时,IE6往往会存在一些显示上的bug,例如元素在滚动时可能出现抖动或位置不准确的现象。jQuery fixed...
- 使用懒加载策略,只在节点被展开时加载其子节点,减少初始加载的DOM数量。 - 采用递归或迭代的方式动态生成和更新DOM,避免一次性生成大量节点。 综上所述,实现一个在各种浏览器下兼容的JavaScript树形菜单...
2. **传统DOM操作**:尽管Vue.js基于虚拟DOM,但为了保证在旧浏览器中的兼容性,`vue-print-nb` 可能会使用传统的DOM操作方法,如querySelector、innerHTML等,而非依赖于Vue的API。 3. **CSS前缀**:对于CSS3的新...
### 寒羽枫JS日历控件兼容所有浏览器(包括IE8) #### 概述 在Web开发领域,实现一个跨浏览器兼容的日历插件是一项挑战性任务,尤其是在需要支持老旧浏览器如Internet Explorer 8 (IE8)时。本文将详细介绍如何对寒...
【标题】:JS+CSS的纯日历提醒插件(兼容所有浏览器) 是一款基于JavaScript和CSS技术构建的日历插件,旨在为用户提供一个轻量级、无依赖、全浏览器兼容的日期选择与提醒功能。这款插件充分利用了JavaScript动态交互...
4. **兼容性处理**:由于目标是兼容所有浏览器,开发者需要确保使用的jQuery函数和CSS属性在老版本的浏览器(如IE8及以上)中也能正常工作。可能需要引入jQuery的polyfill或者使用特性检测来提供兼容性支持。 5. **...
为了实现跨浏览器兼容性,开发者需要考虑不同的浏览器可能对CSS、DOM操作和事件处理有不同的实现。例如,IE(Internet Explorer)、Chrome、Firefox、Safari和Opera等浏览器可能在处理某些JS特性时存在差异。因此,...
在网页设计中,实现元素的圆角效果以及动态换肤是常见的需求,尤其在JavaScript(JS)的帮助下,这些功能可以轻松地实现,并且能够确保在不同的浏览器之间具有良好的兼容性。"js换肤圆角代码兼容各个浏览器"这个主题...