【发布时间】:2021-12-12 03:16:21
【问题描述】:
我发现当我有一个基于宽度的 matchMedia 查询在页面中侦听时,它会在我打印时被调用。
这是一个更全面的sn-p:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,viewport-fit=cover" />
</head>
<body>
<div>Open me in chrome, look at the console and print the page</div>
<script>
const mediaQuery = window.matchMedia('only screen and (min-width: 768px)')
mediaQuery.addEventListener('change', () => {
console.log('change width event', { innerWidth: window.innerWidth, outerWidth: window.outerWidth })
})
</script>
</body>
</html>
在我的控制台中,我可以看到window.innerWidth 在打印时的值为 555,然后在此之后使用我的窗口的正确值(大于 555)调用 mediaQuery。
为什么会发生这种情况,我们如何禁用它?
【问题讨论】: