用javascript获取的body宽度在IE和Firefox不一? 原因在于document.getElementById("cctv").offsetWidth可能为IE的专用属性,在FF中获取的body宽度属性不是offsetWidth。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 document.body 的值在不同浏览器中有不同解释(实际上大多数环境是由于对 document.body 解释不同造成的,并不是由于对 offset 解释不同造成的) IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。offsetWidth与offsetHeight一样的,只是把高度换成宽度 所以你获取body当然他们的值不一样了 再解释一个scrollHeight给你IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。当然scrollWidth是一样的了简单的来说呢:clientHeight(clientWidth) 就是透过浏览器看内容的这个区域高度(宽度)。NS、FF 认为 offsetHeight(offsetWidth) 和 scrollHeight(scrollWidth) 都是网页内容高度(宽度),只不过当网页内容高度(宽度)小于等于 clientHeight 时,scrollHeight(scrollWidth) 的值是 clientHeight(clientWidth),而 offsetHeight(offsetWidth) 可以小于 clientHeight(clientWidth)。IE、Opera 认为 offsetHeight(offsetWidth) 是可视区域 clientHeight(clientWidth) 滚动条加边框。scrollHeight(clientWidth) 则是网页内容实际高度(宽度)。 offsetWidth ff也是认识的,不过FF下window.innerWith<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN"><style>*{margin:0;padding:0}</style><body id="cctv"><a>adadeadd</a></body><script type="text/javascript" defer="defer"> var c=document.getElementById("cctv").offsetWidth; var d = window.innerWidth;alert(c) ;alert(d); </script> 我想楼主的问题,主要是各个浏览器对滚动条的包含关系不同引起的把,楼下继续.... -_-!!不是浏览器对滚动条的包含关系不同引起,而是body宽度和高度的值在不同浏览器中有不同解释 原因可能发生在DTD(如果你引用了DOCTYPE的话)document.body.offsetWidth会成为document.documentElement.offsetWidth具体定义内容不贴了body节点和documentElement是两个不同的节点,获取body的相关信息时会受到doctype对解释的不同概念。……我这话怎么听着自己都感觉绕口……-_-! 感谢chinmo的解答,受益匪浅阿,正好解决了我的困扰 extjs提交后子窗口无法关闭 如何将textarea内容发送到指定位置 js 急急急!!!!! 关于lightwindow自适应的问题 javascript变量值怎样提交表单 如何在父窗口控制弹出窗口的位置和大小? 如何判断一组checkbox,一个也没有选中? 如何控制页面背景图片显示的时间? 请教js问题 正则表达式何解 关于iframe的问题 moo.fx.pack.js 的疑惑 javascript里怎么把JAVA地LIST转化成javascript地数组啊?哪为大大帮下
NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。
offsetWidth与offsetHeight一样的,只是把高度换成宽度
IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。
NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。
当然scrollWidth是一样的了简单的来说呢:clientHeight(clientWidth) 就是透过浏览器看内容的这个区域高度(宽度)。
NS、FF 认为 offsetHeight(offsetWidth) 和 scrollHeight(scrollWidth) 都是网页内容高度(宽度),只不过当网页内容高度(宽度)小于等于 clientHeight 时,scrollHeight(scrollWidth) 的值是 clientHeight(clientWidth),而 offsetHeight(offsetWidth) 可以小于 clientHeight(clientWidth)。
IE、Opera 认为 offsetHeight(offsetWidth) 是可视区域 clientHeight(clientWidth) 滚动条加边框。scrollHeight(clientWidth) 则是网页内容实际高度(宽度)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<style>
*{margin:0;padding:0}
</style>
<body id="cctv">
<a>adadeadd</a>
</body><script type="text/javascript" defer="defer">
var c=document.getElementById("cctv").offsetWidth;
var d = window.innerWidth;
alert(c) ;
alert(d);
</script>
我想楼主的问题,主要是各个浏览器对滚动条的包含关系不同引起的把,楼下继续....
-_-!!不是浏览器对滚动条的包含关系不同引起,而是body宽度和高度的值在不同浏览器中有不同解释
document.body.offsetWidth
会成为
document.documentElement.offsetWidth
具体定义内容不贴了
body节点和documentElement是两个不同的节点,获取body的相关信息时会受到doctype对解释的不同概念。……我这话怎么听着自己都感觉绕口……-_-!