Определить уровень масштабирования браузера с помощью JavaScript

Можно ли определить уровень масштабирования браузера, когда пользователь изменил уровень масштабирования браузера, и уровень масштабирования по умолчанию, используя javascript. Мне нужно вызывать различные XML-файлы в зависимости от изменения уровня масштабирования.

1 ответ

Я обнаружил, что вы должны изменить для каждого браузера:

Это прекрасно работает в сафари и хром:

zoom = parseInt(document.defaultView.getComputedStyle(document.documentElement, null).width,10)/document.documentElement.clientWidth

Это хорошо работает в IE8+ (если у вашего пользователя не какой-то причудливый экран....):

zoom = window.screen.deviceXDPI/96

И для Firefox и IE7 я использую это, хотя у меня до сих пор нет его для работы с Firefox на Mac...

Удачи.

Это даст текущий коэффициент масштабирования относительно начального масштабирования при первой загрузке страницы, если он был загружен без масштабирования ( 100%), тогда он даст вам реальный фактический текущий масштаб:

window.addEventListener('resize',()=>{
    var height = Math.max( body.scrollHeight, body.offsetHeight, 
      html.clientHeight, html.scrollHeight, html.offsetHeight );
      const ratio = ( height /  document.documentElement.clientHeight )
      if (!window.zc_)
      {
        window.zc_ = 100/ratio
      }
    const zoom = ratio* window.zc_
    console.log(
      zoom
      );
    })
Другие вопросы по тегам