为了账号安全,请及时绑定邮箱和手机立即绑定

对于这段代码有些异议:

var w= document.documentElement.clientWidth
     || document.body.clientWidth;
var h= document.documentElement.clientHeight
     || document.body.clientHeight;


document.body.clientWidth和Height在测试的时候得到的都是HTML内容的宽度和高度而不是浏览器窗口的可是区域大小,通过以下代码可以看出:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<!--
<br /><br /><br /><br /><br /><br /><br /><br />
-->
<script type="text/javascript">
document.write('document.documentElement 宽:' + document.documentElement.clientWidth + ' 高:' + document.documentElement.clientHeight + '<br />');
document.write('document.body 宽:' + document.body.clientWidth + ' 高:' + document.body.clientHeight + '<br />');
document.write('window.inner 宽:' + window.innerWidth + ' 高:' + window.innerHeight + '<br />');
</script>
</body>
</html>


我可以通过以上代码看到window.innerWidth、Height与document.documentElement.clientWidth、Height的结果是一样的,而document.body.clientWidth、Height的结果,宽和高都小于之前的两对值,特别是Height高度。为什么呢?因为body是存储网页标签和内容的地方,在没有内容是,其高度很低,我们可以去掉上面代码包含<br />标签的注释<!!--->,在运行代码就可以看到document.body.client获取的高度就变化了。


根据上面代码的结果,所以认为上面代码,应该修改为

var w= document.documentElement.clientWidth
     || window.innerWidth;
var h= document.documentElement.clientHeight
     || window.innerHeight;








正在回答

4 回答

说得对!

0 回复 有任何疑惑可以回复我~

同意!

0 回复 有任何疑惑可以回复我~

赞同。document.body.clientWidth与其他两者的结果是不同概念。

0 回复 有任何疑惑可以回复我~

我也觉得有问题,赞同你的观点

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信