可能有很多朋友和我有同样经历,一个网页中的正常的、“完美”的JS代码,放到另一个网页中就变得不那么完美了。这问题很奇怪,最后找到原因,是因为一个网页有标准声明,另一个没有。
????document.compatMode,可以用来判断当前页面采用的渲染方式。下面官方文档的说明: 当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth; 浏览器客户区高度、滚动条高度、滚动条的Left、滚动条的Top等等都是上面的情况。 经我研究和多次测试后,写了个准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top的代码: if (document.compatMode == "BackCompat") {
BackCompat:标准兼容模式关闭。
CSS1Compat:标准兼容模式开启。
当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。
???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;
}
详细解决方案
document.compatMode 基准兼容模式,准确的获取浏览器客户区宽度
热度:87 发布时间:2012-09-21 15:47:26.0
相关解决方案
- jquery中$(document).ready(function()是jquery开始要写的一句话,javaWeb项目中,这句话什么时候开始实施呢
- document.form1.submit() 揭示拒绝访问
- document.all的用法,该如何处理
- document.getElementById(。)对象不存在,该如何解决
- document.getElementById与lhgdialog.js冲突,导致JS异常
- document.writeln解决办法
- document.getElementById("input").checked;转换成Jquery,如何写
- 无刷新更换验证码图片"onclick="document.getElementById('ImgCode').src='./VerifyCode.aspx'"无效,该怎么处理
- 怎么自动执行<a href="document.html" target="parent">my document</a> 呢
- 讯息: 'document.form1.xclassid' 为空或不是对象
- 怎么根据字符串构造 document 对象
- asp.net做动态菜单出现document.all.item1.style.top=parseInt(document.all.item1.style.to),该怎么解决
- document.writeln解决方法
- document.write()不覆盖其它元素,该怎么解决
- Microsoft JScript 运行时异常: 'document.getElementById(.)' 为空或不是对象
- 问在线编辑WORD(SharePoint.Document),非正常退出WORD时(比如结束进程),第二次打开就显示已被用户锁定.请教如何解决
- 郁闷、难过啊一个关于JS跨页面访问的有关问题,'Parent.top_frame.document.all.T1 '为空或不是对象
- document.getElementById("TextBox")解决办法
- 服务控件 当按下回车时触发的有关问题 提示:"Microsoft JScript 运行时异常: 'document.all[.]' 为空或不是对象"
- document.GetElementById('PIDIn').select()对象不支持此属性或方法?该如何处理
- document.write(str);的有关问题
- 求javascript的保留代码: document.execCommand
- document.getElementById()里面能放参数吗?解决办法
- document.createElement("div")后怎么取他的属性
- ◆◇◆ 能否依据 html 字符串动态的创建 document 对象? ◆◇◆,该如何处理
- 怎么得到光标标在 Word.Document 中位置
- infopath 怎么获取sharepint document library中最大的file name
- document library里Create Excel模板资料
- 关于WebBrowser1.Document.getElementsByClassName,该怎么处理
- java.lang.IllegalArgumentException: Document base C:\Program Files\Ap解决方法