首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓浏览器的screen.width、screen.height和window.innerWidth & window.innerHeight是不可靠的

安卓浏览器的screen.width、screen.height和window.innerWidth & window.innerHeight是不可靠的
EN

Stack Overflow用户
提问于 2012-05-16 00:58:04
回答 8查看 47.5K关注 0票数 34

我正在开发一款针对桌面、平板电脑和智能手机浏览器的网络应用程序。

这个网络应用程序有一个使用彩色盒iframe一起实现的照明盒。当浏览器窗口的大小调整或平板/电话的方向发生变化时,Javascript代码会查询窗口的大小,以便调整灯箱中的某些元素。

我面临的问题是,所有的东西都可以在桌面上正常工作(Windows:即:火狐,Chrome,Mac: Safari),iPad & iPhone,但在安卓智能手机(HTC)和安卓仿真器上就不行了。

当从窗口的调整大小事件中查询screen.widthscreen.heightwindow.innerWidthwindow.innerHeight时,Android总是会返回不同的值,该事件会多次触发。

为什么Android浏览器返回如此大的值差异,以及如何可靠地检测浏览器窗口的宽度和高度?

EN

回答 8

Stack Overflow用户

发布于 2013-03-21 04:43:12

在安卓系统上,window.outerWidth和window.outerHeight的屏幕大小是可靠的。根据您的Android版本,innerWidth/高度通常是不正确的。

这是一个非常好的记记的情况。

票数 16
EN

Stack Overflow用户

发布于 2013-08-02 09:29:18

以下是三星平板电脑运行Android4.1的基于读数的差异

  • screen.height -给出实际的设备高度,包括任务栏和标题栏。
  • window.innerHeight -给出不包括任务栏、标题栏和地址栏的高度(如果可见的话)
  • window.outerHeight -给出不包括任务栏和标题栏高度的高度(无论地址栏是可见的还是隐藏的,outerHeight都包括地址栏的高度)。
票数 4
EN

Stack Overflow用户

发布于 2012-10-04 10:01:33

我花了几个小时才找到解决办法。

window.innerHeightwindow.outerheight等中唯一的常数是screen.height

这个代码给了我最外层的高度:

代码语言:javascript
运行
复制
screen.height / window.devicePixelRatio - window.screenTop

此外,为了支持较早版本的android,请将代码放在setTimeout中。

我希望这是有帮助的

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10610743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档