【问题标题】:Does Safari iOS9 returns a wrong value for window.innerHeight?Safari iOS9 是否为 window.innerHeight 返回错误的值?
【发布时间】:2015-12-26 17:37:58
【问题描述】:

这是我的视口元标记:

    <meta name="viewport" content="user-scalable=no, initial-scale = 1, minimum-scale = 1, maximum-scale = 1, width=device-width">

在 Safari iOS 8 上,window.innerHeight$(window).height() 都返回相同的值:在 iPad 上为 928。

但在 Safari iOS 9 上,window.innerHeight$(window).height() 返回不同的值:在运行 iOS 9.0 的 iPhone 6s 上分别返回 1461 和 559,在运行 iOS 9.1 的 iPad mini 上分别返回 1154 和 905。

这是 Safari 中的错误还是有意为之?我的 iPhone 上的 1461 是从哪里来的?我应该使用$(window).height()(它返回我想要的值)而不是window.innerHeight吗?

【问题讨论】:

    标签: javascript jquery ios safari ios9


    【解决方案1】:

    是的,我遇到了同样的行为......

    Using $(window).height() 似乎可以工作,但我想最好更改元标记。

    Here

    【讨论】:

      【解决方案2】:
      <meta name="viewport" content="width=device-width initial-scale=1 shrink-to-fit=no">
      

      将“shrink-to-fit=no”添加到视口元标记修复了我在调整大小时出现的错误 window.innerHeight 值 -

      https://forums.developer.apple.com/thread/13510

      【讨论】:

      • 这个应该是答案
      • 谢谢。我在 Safari iPad 上遇到了这个问题
      【解决方案3】:

      尝试将您的元标记更改为..

      <meta name="viewport" content="initial-scale=1.0001, minimum-scale=1.0001, maximum-scale=1.0001, user-scalable=no"/>
      

      【讨论】:

      • 这是对我有用的解决方案!!介意解释一下为什么?赞成,因为这个 hacky 解决方案是唯一对我有用的东西,没有一些 javascript setTimeout hack。
      • 好的,几分钟后,它又坏了。事实证明,在移动 Safari 中,布局事件与 Width 和 Height 设置为 980px 和 1487px 相关联。
      • 对我有用,真是个丑陋的黑客,希望苹果能解决这个问题!
      猜你喜欢
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2011-12-18
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多