- 浏览: 1684760 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1323)
- easyui学习 (21)
- jquery (51)
- css (21)
- js (103)
- html (19)
- java (95)
- 测试工具 (7)
- oracle (45)
- eclipse (9)
- spring (8)
- 开源框架 (111)
- struts (12)
- hsqlbd (2)
- h2database (2)
- maven (8)
- activiti (2)
- sql语句 (7)
- fmpp (1)
- apache (2)
- tomcat (6)
- jbpm (2)
- ant (20)
- mysql (10)
- 业务需求 (54)
- ralasafe (3)
- Quartz (4)
- mybatis (8)
- flex (6)
- html5 (16)
- apache工具 (4)
- hibernate (5)
- linux (109)
- powerdesigner (3)
- 报表 (1)
- log4j (2)
- junit (1)
- shiro (4)
- wap (3)
- php (28)
- mantis (1)
- poi (3)
- extjs (1)
- 安防 (34)
- 网络 (113)
- UltraEdit (1)
- 手机 (9)
- freemarker (19)
- jquery mobile (28)
- css3 (1)
- 微信 (9)
- nodejs (7)
- 项目管理 (14)
- 文档 (13)
- ibatis (22)
- ftp (3)
- spring MVC (9)
- groovy (2)
- AngularJS (19)
- nginx (15)
- 会计 (5)
- hive (1)
- 分布式 (8)
- 设计模式 (4)
- velocity (2)
- 爬虫 (2)
- git (1)
- thymeleaf (4)
- activemq (5)
- bootstrap (1)
- Spring Batch (1)
- memcache (20)
- ttserver (1)
- Jenkins (1)
- cxf (1)
- axure (2)
- 银行金融 (11)
- c语言 (2)
- 大数据 (4)
- drools (4)
- python (2)
- 交易所 (1)
- haproxy (1)
- dubbo (3)
- dos (3)
- 人力资源 (4)
- 支付 (1)
- Intellij IDEA (1)
- IPO (1)
- springboot (1)
- 质量管理 (7)
- svn (1)
- 其他 (8)
- 阿里云 (2)
- 多媒体设计 (2)
- 数据库 (4)
- wps (0)
最新评论
-
masuweng:
en
Native.js -
rmnjava:
我按照你的方法写的,不起作用啊
easyui验证的删除和恢复 -
rmnjava:
原地址打不开了呀
easyui验证的删除和恢复 -
sunteng:
sunteng 写道这是json 吗[{url:'aaa'}, ...
freemarker解析json数组 -
sunteng:
这是json 吗
freemarker解析json数组
今天在看框架的时候无意间看到了document.compatMode,经过一番资料查找,终于搞懂了。文档模式在开发中貌似很少用到,最常见的是就是在获取页面宽高的时候,比如文档宽高,可见区域宽高等。
IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有很大差别,而在不声明Doctype的情况下,IE默认又是Quirks Mode。所以为兼容性考虑,我们可能需要获取当前的文档渲染方式。
document.compatMode正好派上用场,它有两种可能的返回值:BackCompat和CSS1Compat。
BackCompat:标准兼容模式关闭。浏览器客户区宽度是document.body.clientWidth;CSS1Compat:标准兼容模式开启。 浏览器客户区宽度是document.documentElement.clientWidth。
那么写了个准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top的代码:
if (document.compatMode == "BackCompat") { cWidth = document.body.clientWidth; cHeight = document.body.clientHeight; sWidth = document.body.scrollWidth; sHeight = document.body.scrollHeight; sLeft = document.body.scrollLeft; sTop = document.body.scrollTop; } else { //document.compatMode == "CSS1Compat" cWidth = document.documentElement.clientWidth; cHeight = document.documentElement.clientHeight; sWidth = document.documentElement.scrollWidth; sHeight = document.documentElement.scrollHeight; sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft; sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop; }
发表评论
-
js计算器效果
2017-01-20 12:54 339js计算器效果 -
比较简单的判断日期大小的方式
2016-12-12 19:33 450比较简单的一种方式 function chectRa ... -
accounting.js
2016-11-02 11:37 689accounting.js 是一个非常小的JavaScri ... -
jquery-resizable-columns
2016-09-20 20:27 487js的拖动插件 https://github.co ... -
KnockoutJS
2016-05-31 15:01 338官网:http://knockoutjs.com/index ... -
jsonschema
2016-05-13 17:29 387jsonschema是描述你的JSON数据格式;JSON模式 ... -
foundation
2016-05-13 15:56 326官网:http://foundation.zurb.com/ ... -
web跨终端开发流程
2016-05-13 15:15 766解决方案: 1.响应式 2.多站点 不同的终端用不同 ... -
浏览器分级支持 GBS
2016-05-13 14:56 472GBS 是 YUI 团队提出的应对日益增长的浏览器兼容问题 ... -
WEB页面开发34条军规 YAHOO
2016-05-13 13:59 376https://developer.yahoo. ... -
JavaScript异步编程的Promise模式
2016-05-12 17:02 322promise,它代表了一种可能会长时间运行而且不一定必须 ... -
KISSY
2016-05-12 16:18 396官网:https://github.com/kissytea ... -
js代码模块化目的
2016-05-12 15:40 585模块化的目标是:1.代码单元冠以命名,增强代码段的辨识度2.建 ... -
js去掉前后空格
2016-05-06 19:52 304var whitespace = /(^[\s\t\xa0\ ... -
舍去法截取一个小数
2015-10-23 14:29 532/** * 舍去法截取一个小数 * @param f ... -
D3.JS.
2015-10-15 13:28 885D3 是最流行的可视化库之一,它被很多其他的表格插件所使用 ... -
jsmin
2015-08-19 10:10 322JSMin 是一款JavaScript痩身工具。用于从Ja ... -
复选框全选、设置值
2015-08-10 13:19 707功能包括,全选、反全选 给隐藏域设置值 有时间了可以写成 ... -
React
2015-07-23 10:02 623官网教程:http://facebook.github.io ... -
Juicer
2015-07-23 09:58 570Juicer 是一个高效、轻量的前端 (Javascript ...
相关推荐
JavaScript中的`document.compatMode`属性是用来检测浏览器当前的渲染模式,这对于处理跨浏览器的兼容性问题至关重要。在网页开发中,浏览器对HTML文档的解析方式有两种:Quirks Mode(怪异模式)和Standards Mode...
`document.compatMode` 是一个在JavaScript中用于检测网页渲染模式的属性,对于开发跨浏览器兼容性的Web应用至关重要。它的存在主要是因为不同的浏览器,尤其是Internet Explorer(IE),在处理页面布局和盒模型时...
在火狐浏览器中,通常情况下`document.body.scrollTop`和`document.documentElement.scrollTop`返回相同的值,因为火狐遵循了W3C的标准,即在文档完全加载后,这两个属性应该反映页面的实际滚动位置。 #### 谷歌...
本文档旨在总结JavaScript中DOM(Document Object Model)节点API的基本用法及其在实际开发中的应用。通过深入理解这些API,开发者能够更加灵活地操控网页文档结构,实现动态内容更新、用户交互等功能。 #### 文档...
不过,`document.compatMode` 可以帮助我们判断当前文档是处于标准模式(CSS1Compat)还是怪异模式(BackCompat)。根据这个属性,我们可以编写兼容性代码: ```javascript if (document.compatMode === ...
否则,如果`document.compatMode`不存在或者为"BackCompat"(quirks模式),则使用`document.body.clientWidth`和`document.body.clientHeight`获取窗口大小。 另外,获取窗口在屏幕上的位置也有类似的问题。`...
然而,在遵循Web标准的XHTML页面中,`document.body.scrollTop` 属性可能由于文档类型定义(DTD)的影响而始终返回0,这导致无法准确获取页面的实际滚动位置。 #### 解决方案:兼容性处理 为了解决这一问题,开发...
} else if (document.compatMode === "BackCompat") { width = document.body.clientWidth; height = document.body.clientHeight; } else { width = document.documentElement.clientWidth; height = ...
- `document.documentElement.scrollLeft` 和 `document.documentElement.scrollTop` 在某些情况下也可以用于获取滚动量,尤其是在文档模式为`CSS1Compat`的情况下。 - `document.body.scrollLeft` 和 `document....
2. **选择正确的body或documentElement对象**:由于IE在标准模式和怪异模式下使用的对象不同,因此需要根据`document.compatMode`来决定使用哪个对象。 3. **获取滚动条位置**:对于IE浏览器,使用`IeTrueBody()....
在这个例子中,表达式检查当前文档的兼容模式(`document.compatMode`),如果模式是`CSS1Compat`(表示标准模式),它会基于`documentElement`(HTML根元素)进行计算;否则,它会基于`document.body`进行计算。...
本文档主要介绍如何利用JavaScript结合CSS样式实现楼层导航效果。这种效果广泛应用于大型网站或页面较长的网站中,以提高用户体验,让用户能够快速跳转到页面中的指定部分。 #### 二、CSS样式设置 在开始编写...
- **document.compatMode**: 该属性用来判断文档处于何种渲染模式。如果值为 "CSS1Compat",表示文档处于标准兼容模式;如果为 "BackCompat",则处于怪异模式。 - **document.documentElement.clientHeight**: 标准...
9. 浏览器兼容性:浏览器的兼容性是一个重要的问题,需要考虑不同浏览器的差异,例如使用 `document.compatMode` 来判断浏览器的兼容性模式。 本文档涵盖了前端工程师笔试面试题的多个技术领域,包括 HTML、CSS、...
2. **文档模式检测**:判断当前页面是在“怪异模式”下显示还是在“标准模式”下显示。 ```javascript var E = (document.compatMode == "BackCompat"); ``` #### DOM元素操作函数 1. **获取元素**:通过ID获取...
在Vue.js应用中,有时我们需要实现锚点定位或者在用户操作后调整页面滚动位置,但可能会遇到一个问题:尝试使用`document.body.scrollTop`设置滚动条位置时,发现它总是不起作用,值始终保持为0。这个问题主要源于...
4. **document.compatMode**:返回文档的渲染模式,区分怪癖模式(BackCompat)和标准模式(CSS1Compat)。在处理IE8及其之前的版本时,可能需要结合`document.documentMode`来判断具体的渲染模式。 5. **document....
开发者可以通过document.compatMode属性来检测当前页面的渲染模式。 DOCTYPE的正确使用对于确保页面在不同浏览器中的渲染一致性至关重要。最常见的是XHTML 1.0 Transitional和HTML5的DOCTYPE声明。例如: ```html ...