Определить уровень масштабирования браузера с помощью 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
);
})