为什么javascript会报告800px宽度的摩托罗拉Atrix MB860 4G?不应该是540px

时间:2013-01-16 21:41:12

标签: javascript android web-applications motorola screen-size

对于我的移动Web应用程序,我试图获取设备的屏幕宽度以动态调整视图。

我真的很困惑为什么摩托罗拉Atrix Atrix MB860报告宽度为800px。当我看到这个设备的规格时,它的分辨率是540x960。为什么在javascript中报告800px?我用过这个测试页面: http://www.quirksmode.org/m/tests/widthtest.html screenshot from motorola atrix

我在几个设备上测试了上面的页面,除了摩托罗拉atrix之外,它们都正确地报告了宽度。例如,galaxy s2报告480px,nexus 7报告1280px

1 个答案:

答案 0 :(得分:2)

这是Android 2.3的奇怪行为。我在这里找到了:http://tripleodeon.com/2011/12/first-understand-your-screen

  然而,在常规浏览器场景中,Android v2.3显示出更加奇怪的行为。它的screen.width始终以800开始 - 这显然是某种虚拟视口,而不是物理屏幕。但是当文档具有XHTML-MP doctype或受约束的视口(对于任何doctype)时,该值将在文档加载事件发生时切换为您可能期望的320或480。

window.outerWidth应该设置技巧或将视口宽度设置为设备宽度

<meta name="viewport" content="width=device-width, user-scalable=no" />