【发布时间】:2012-04-04 19:26:00
【问题描述】:
我在从 Mozilla Firefox 检索当前页面文档宽度时遇到问题。其余浏览器报告文档的正确宽度,而 Firefox 报告较小的宽度(例如:在 IE 的屏幕分辨率为 1920x1080 时,Chrome 和 Safari 报告为 1920,而 Firefox 报告为 1903)。
我在 $(document).ready(function() { ... }); 中使用文档宽度重新定位 div 元素。有趣的是,在此函数中使用 alert() 后,元素重新定位正确,尽管文档大小仍然小于其他浏览器。
【问题讨论】:
-
(i) 有滚动条吗? (它在 FF 中正好占用 17px) (ii) 你检查 DOM 稳定后的高度吗?
-
(i)是的。 (ii) 不,我不需要高度,只需要宽度。顺便说一句,稳定后如何检查DOM?我做了一个小技巧,增加了 500 毫秒的延迟,现在重新定位正确,但我想要一个静态解决方案。
-
如果存在滚动条,宽度将为屏幕宽度 - 17px。计算准备好的文档内部宽度的想法是正确的,但不确定为什么在浏览器中会出现不一致的宽度。一个原因是您的文档在文档准备好后会改变高度。例如。如果您的图像没有指定宽度/高度,则浏览器不知道文档准备好的文档高度。一旦它接收到(前几 KB)图像,它就会重新计算高度并确定需要滚动条。您可能想在 window.load 中计算高度。
标签: javascript jquery firefox