Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么window.screen在macOS safari上不起作用_Javascript_Html_Safari - Fatal编程技术网

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

Javascript 为什么window.screen在macOS safari上不起作用,javascript,html,safari,Javascript,Html,Safari,所以我尝试在我的网站上重定向手机页面。如果有人在移动设备上,那么它会将他们发送到移动站点而不是桌面站点。它在铬上工作。但是,它在macOS Safari上不起作用。知道为什么吗?JavaScript代码如下所示: <script> if (screen.width <= 420) { document.location="mobileindex.html"; } </script> 如果(screen.widthscree

所以我尝试在我的网站上重定向手机页面。如果有人在移动设备上,那么它会将他们发送到移动站点而不是桌面站点。它在铬上工作。但是,它在macOS Safari上不起作用。知道为什么吗?JavaScript代码如下所示:

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


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

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

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


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

nice,而不是
screen.width
,你可以使用
window.innerWidth
@Mosijava,我会小心处理,或者至少根据浏览器的不同,混合使用它们,你不会得到相同的结果。