1

我从 Mozilla Firefox 检索当前页面文档宽度时遇到问题。其余浏览器报告文档的正确宽度,而 Firefox 报告较小的宽度(例如:在 1920x1080 IE 的屏幕分辨率下,Chrome 和 Safari 报告 1920 而 Firefox 报告 1903)。

我在 $(document).ready(function() { ... }); 中使用文档宽度 重新定位 div 元素。有趣的是,在此函数中使用 alert() 后,元素重新定位正确,尽管文档大小仍然小于其他浏览器。

4

1 回答 1

1

正如萨尔曼在评论中已经指出的那样,这种差异来自滚动条。根据浏览器(可能还取决于是否启用了 quirks 模式),滚动条可能被认为是“在”文档“外部”(在这种情况下,它的宽度不会添加到文档宽度中)或<html>元素的一部分(然后是它的宽度将添加到文档宽度)。所以document.documentElement.offsetWidth会返回不一致的结果——有时有滚动条,有时没有滚动条。document.body.offsetWidth另一方面,跨浏览器似乎一致 - 不包括滚动条宽度。

如果您想学习的是视口宽度,而不管内容如何,​​那么window.innerWidth可能是一个更好的选择。我在 Firefox、Chrome 和 MSIE 9.0 中进行了测试——它返回了所有这些窗口中最大化窗口的全屏宽度。

于 2012-04-04T09:50:25.427 回答