为什么 window.screen 在 macOS Safari 上不起作用

Gib*_*non 3 html javascript safari

所以我试图在我的网站上重定向移动页面。如果有人在移动设备上,那么它会将他们发送到移动站点而不是桌面站点。它适用于 Chrome。但是,它不适用于 macOS Safari。知道为什么吗?JavaScript 如下:

<script>
        if (screen.width <= 420) {
        document.location="mobileindex.html";
    }
</script>
Run Code Online (Sandbox Code Playgroud)

Toa*_*gma 6

screen.width返回屏幕的宽度,而不是浏览器窗口。这很好,因为这意味着我们不能错误地将用户重定向到移动网站。

在 Chrome 中,我们可以使用设备模拟器测试我们的逻辑是否有效。在设备模拟器中加载页面时,screen.width返回被模拟设备的宽度,而不是主机的屏幕。

但是,在 Safari 中,相应的响应式设计模式不会以这种方式工作。screen.width将始终返回 Safari 中计算机显示器的宽度,而不是模拟设备的宽度。

换句话说,这是 Safari 实现的问题,而不是您的代码。它可以在实际的移动设备上正常工作。

  • 很好,你可以使用 `window.innerWidth` 代替 `screen.width` (2认同)