可能有很多朋友和我有同样经历,一个网页中的正常的、“完美”的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("input").checked;转换成Jquery,如何写
- 无刷新更换验证码图片"onclick="document.getElementById('ImgCode').src='./VerifyCode.aspx'"无效,该怎么处理
- 怎么自动执行<a href="document.html" target="parent">my document</a> 呢
- document.write()不覆盖其它元素,该怎么解决
- Microsoft JScript 运行时异常: 'document.getElementById(.)' 为空或不是对象
- 问在线编辑WORD(SharePoint.Document),非正常退出WORD时(比如结束进程),第二次打开就显示已被用户锁定.请教如何解决
- 郁闷、难过啊一个关于JS跨页面访问的有关问题,'Parent.top_frame.document.all.T1 '为空或不是对象
- 服务控件 当按下回车时触发的有关问题 提示:"Microsoft JScript 运行时异常: 'document.all[.]' 为空或不是对象"
- document.GetElementById('PIDIn').select()对象不支持此属性或方法?该如何处理
- document.write(str);的有关问题
- document.getElementById()里面能放参数吗?解决办法
- document.createElement("div")后怎么取他的属性
- 怎么得到光标标在 Word.Document 中位置
- java.lang.IllegalArgumentException: Document base C:\Program Files\Ap解决方法
- C# 中的 webbrowser.Document.Body.appendChild 没真正写入到源网页中
- The associated COM server does not support ActiveX Document embedding. ...
- document.write设置格式,该如何处理
- :document.execCommand('saveas','false','C:\\download.txt');保存文件的文件有关问题,
- document.execCommand("SaveAs")为何只能选择bmp格式的,该如何解决
- document.body.clientLeft 是什么意思,该如何解决
- 一个小疑点, document.getElementById("Textbox1") 后面没有value这些提示了
- 求 window.parent.document.getElementById(.)为空或不是对象的解决方法
- document.getElementById("test").innerHTML= 这里内容如何写
- document.all.name<%=i%>value能不能动态?求大神解答.解决方案
- javascript:document.sele.submit()异常,
- window.opener.document.form1.text0.value中如果使用变量?解决办法