现在比这个问题第一次被问到的时候更混乱了。通过阅读我能找到的所有回复和博客文章,这里有一个总结。我还设立了此页面测试所有这些测量缩放级别的方法。.IE8: screen.deviceXDPI / screen.logicalXDPI(或者,对于相对于默认缩放的缩放级别,
screen.systemXDPI / screen.logicalXDPI)
IE7: var body = document.body,r = body.getBoundingClientRect(); return (r.left-r.right)/body.offsetWidth;(多亏了或
FF3.5: screen.width/media查询屏幕宽度(见下文)(利用以下事实
screen.width使用设备像素,但mq宽度使用css像素-感谢
FF3.6*不知道方法
FF4+媒体查询二进制搜索(见下文)
WebKit*使用
-webkit-text-size-adjust:none.
WebKit*(自
R 72591) document.width / jQuery(document).width()(多亏了)。若要获得设备像素的比率(而不是相对于默认缩放),请乘以
window.devicePixelRatio.
老WebKit?(未经核实):
parseInt(getComputedStyle(document.documentElement,null).width) / document.documentElement.clientWidth(来自
歌剧: document.documentElement.offsetWidth/a的宽度
position:fixed; width:100%迪夫。说这是个bug;InnerWidth应该是CSS PX)。我们使用位置:固定元素来获取视口的宽度。
包括滚动条所在的空间。、document.documentElement.clientWidth不包括此宽度。这在2011年的某个时候就被打破了,我不知道如何在Opera中获得缩放级别。
不可靠:听鼠标事件并测量屏幕X中的变化/ClientX中的更改
这里是Firefox 4的二进制搜索,因为我不知道它公开的任何变量: