JS获取ie可用宽度问题,有很多结果,我该用哪个?、 http://blog.csdn.net/chinmo/archive/2008/02/18/2102799.aspx先看这个图,对这些东东了解先 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我看了一下,发现三个方法document.documentElement.offsetWidth:987 document.body.offsetWidth:967 document.body.scrollWidth:967比较准确,987的大小就是加上20像素的滚动条大小,真正的可用区域就是967,也就是document.body.offsetWidth的大小,其结果比较准确。为了做试验,我使用了一个渐变色的背景图片,其宽度为689px,将其放在一个宽689px的div1中做背景图像,然后在它的并排位置放置一个div2,其背景使用的是背景色,使用上面的document.body.offsetWidth方法正好填充满整个窗口。html代码使用的是xHtml 1.0 的transitional模式。我使用的是IE8浏览器,IE8浏览器拥有一个客户端调试器,按F12键就会出现,调试器中可以强制选择使用的显示模式,如果使用Quirks模式显示(这个模式就是IE6模式),显示正常,使用IE7浏览器模式,同样显示正常,但使用IE8的标准模式出现了问题,其宽度代码设置失败。其div2的宽度代码我使用的是css中的expression扩展,它在expression后面的括号里面可以调用js代码,我怀疑ie8标准不支持这个扩展,但IE8的兼容模式正常显示。 呵呵,这个expression东西少用为好!! 我这里也做过一个测试看scrollWidth,clientWidth,offsetWidth的部分 document.body.offsetWidth相对宽度document.body.scrollWidth 滚动宽度另外要考虑浏览器版本可以用<div style="width:2000px;height:1000px;"></div>测试 document.documentElement.offsetWidth: 是指根元素,就是html标签 ie ff都是这样的document.body.offsetWidth body标签document.body.scrollWidth 滚动条的那个地方的长度了长度了....ie6下的测试document.documentElement.offsetWidth:1024 //ff 2.0 1024document.body.offsetWidth:1024 //ff 1008document.body.scrollWidth:1004 //ff 1024(ie下 怎么跟2楼不一样了 html标签的长度 != body标签的长度)ff下 如果没有元素的话document.body.offsetHeight 是为0的 当有元素的时候,他的高度是元素高度之和(当然是2个同行的元素只算一个高度) 大概就知道这么点了 /*ScrollTop*/function getScrollTop() { var scrollPos = 0; if (typeof window.pageYOffset != 'undefined') { scrollPos = window.pageYOffset; } else if (typeof window.document.compatMode != 'undefined' && window.document.compatMode != 'BackCompat') { scrollPos = window.document.documentElement.scrollTop; } else if (typeof window.document.body != 'undefined') { scrollPos = window.document.body.scrollTop; } return scrollPos; }/*end ScrollTop*//*ScrollLeft*/function getScrollLeft(){ var scrollPos =0; if (typeof window.pageXOffset != 'undefined') { scrollPos = window.pageXOffset; } else if (typeof window.document.compatMode != 'undefined' && window.document.compatMode != 'BackCompat') { scrollPos = window.document.documentElement.scrollLeft; } else if (typeof window.document.body != 'undefined') { scrollPos = window.document.body.scrollLeft; } return scrollPos; }/*end ScrollLeft*/这段代码应该有这方面的提示,什么时候选用不同的方法取值 http://blog.csdn.net/avon520/archive/2008/07/28/2724094.aspx document.body.offsetWidth 相对宽度 document.body.scrollWidth 滚动宽度 另外要考虑浏览器版本 可以用 <div style="width:2000px;height:1000px;"> </div> 测试 请问如何使用javascript读取网页内容 网页如何播放声音 json 该怎么组织 QQ邮箱里有个明信片功能是怎么实现的? 简单的两个Dropdownlist的联动 请问下 /^[-]{0,1}[0-9]{1,}$/ 是什么意思 怎么让弹出的右键菜单消失? 请教一个正则表达式。 100分求:谁能写个修改MSN messenger版本的网页? 它们是什么意思 JS 这段代码在IE6下可以用,在IE7下不能用,怎么办 如何用FLEX+FLARE开发类似微软人立方的静态图
document.documentElement.offsetWidth:987
document.body.offsetWidth:967
document.body.scrollWidth:967比较准确,987的大小就是加上20像素的滚动条大小,真正的可用区域就是967,也就是document.body.offsetWidth
的大小,其结果比较准确。为了做试验,我使用了一个渐变色的背景图片,其宽度为689px,将其放在一个宽689px的div1中做背景图像,然后在它的并排位置放置一个div2,其背景使用的是背景色,使用上面的document.body.offsetWidth方法正好填充满整个窗口。html代码使用的是xHtml 1.0 的transitional模式。我使用的是IE8浏览器,IE8浏览器拥有一个客户端调试器,按F12键就会出现,调试器中可以强制选择使用的显示模式,
如果使用Quirks模式显示(这个模式就是IE6模式),显示正常,使用IE7浏览器模式,同样显示正常,但使用IE8的标准模式出现了问题,其宽度代码设置失败。
其div2的宽度代码我使用的是css中的expression扩展,它在expression后面的括号里面可以调用js代码,我怀疑ie8标准不支持这个扩展,但IE8的兼容模式正常显示。
看scrollWidth,clientWidth,offsetWidth的部分
相对宽度
document.body.scrollWidth
滚动宽度另外要考虑浏览器版本
可以用<div style="width:2000px;height:1000px;"></div>测试
document.body.offsetWidth body标签
document.body.scrollWidth 滚动条的那个地方的长度了长度了....ie6下的测试
document.documentElement.offsetWidth:1024 //ff 2.0 1024
document.body.offsetWidth:1024 //ff 1008
document.body.scrollWidth:1004 //ff 1024
(ie下 怎么跟2楼不一样了 html标签的长度 != body标签的长度)
ff下 如果没有元素的话
document.body.offsetHeight 是为0的 当有元素的时候,他的高度是元素高度之和(当然是2个同行的元素只算一个高度)
大概就知道这么点了
/*ScrollTop*/
function getScrollTop() {
var scrollPos = 0;
if (typeof window.pageYOffset != 'undefined') {
scrollPos = window.pageYOffset;
}
else if (typeof window.document.compatMode != 'undefined' &&
window.document.compatMode != 'BackCompat') {
scrollPos = window.document.documentElement.scrollTop;
}
else if (typeof window.document.body != 'undefined') {
scrollPos = window.document.body.scrollTop;
}
return scrollPos;
}
/*end ScrollTop*//*ScrollLeft*/
function getScrollLeft(){
var scrollPos =0;
if (typeof window.pageXOffset != 'undefined') {
scrollPos = window.pageXOffset;
}
else if (typeof window.document.compatMode != 'undefined' &&
window.document.compatMode != 'BackCompat') {
scrollPos = window.document.documentElement.scrollLeft;
}
else if (typeof window.document.body != 'undefined') {
scrollPos = window.document.body.scrollLeft;
}
return scrollPos;
}
/*end ScrollLeft*/
这段代码应该有这方面的提示,什么时候选用不同的方法取值
相对宽度
document.body.scrollWidth
滚动宽度 另外要考虑浏览器版本
可以用 <div style="width:2000px;height:1000px;"> </div> 测试