如何以编程方式确定浏览器窗口的当前缩放级别?

Mih*_*age 5 javascript browser safari

我想根据我有权访问的javascripts的窗口对象属性找出浏览器窗口中显示内容的缩放级别.我似乎无法找到基于内部宽度,页面偏移等的缩放的正确数学公式.我找到了一个解决方案,但是使用了document.body.getBoundingClientRect调用,它在我的情况下不会返回任何内容我无法判断窗口属性是否有合适的替代品.我正在使用Safari.

Joh*_*lla 1

您可以通过比较各种属性来确定缩放级别,具体document.documentElement.clientWidth取决于您的浏览器:

  • vs. window.outerWidth(歌剧)
  • 对比document.defaultView.getComputedStyle(document.documentElement, null).width(在 Safari、Chrome 上)
  • 或比较screen.deviceXDPIand screen.logicalXDPI(在 IE8 上)。

这些值的比率是当前缩放级别(例如,比率2 表示缩放为200%)。

  • 如果我使用 document.documentElement.clientWidth 和 document.defaultView.getCompulatedStyle(document.documentElement, null).width 我总是得到相同的值(920 和 2080),无论缩放如何。 (2认同)