3

由于我的网站在小屏幕上看起来一点也不好看,所以我想创建一个 JS 函数,当屏幕宽度小于或等于 800px 时将我重定向到页面的移动版本。

这是它的代码:

if (screen.width <= 800) {
  document.location ="index_mobile.html";
};

如果代码有效,那么当我将浏览器窗口缩小到 800 像素宽时,应该会显示 index_mobile.html。但它现在没有出现。有谁知道发生了什么?

http://jsfiddle.net/RZMmV/

4

2 回答 2

2

移动浏览器不会报告或使用真实设备分辨率,因为这基本上会使互联网上的所有网站都无法使用。

他们所做的是创建一个“虚拟屏幕”,其分辨率接近桌面 PC 的分辨率,然后在页面上实现缩放。

如果您想知道真实的设备分辨率,您需要禁用在设备上完成的自动缩放。例如,对于 iOS 和 Android 设备,可以添加

<meta name="viewport"
      content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>

<head>您页面的部分。这会通知浏览器该页面是为处理低分辨率设备而设计的,并禁用虚拟屏幕层。

于 2012-11-02T18:16:43.253 回答
0

screen.width将返回监视器的宽度,而不是窗口的宽度,因此您不能只是缩小浏览器窗口以获得不同的值。为此,您将需要使用window.outerWidth或其他东西。

于 2012-11-02T18:16:50.350 回答