从Mobile Safari中的window.innerWidth获得不一致的结果

我正在使用此JavaScript来检测浏览器宽度:

$(document).ready(function(){ var width = window.innerWidth; });

它似乎给出了不一致的结果。 我在这里做了一个工作的codepen 。 通过在移动Safari中反复刷新整页视图 ,我收到了以下两个结果:

ios9 Mobile Safari window.innerWidth ios9 Mobile Safari window.innerWidth

它不一致地来回跳跃,并且由于更大的页面尺寸(因此所有图像)而显得更加恶化。 有时它只返回一个结果,直到我杀死应用程序并重新打开它。

有没有更好的方法来获得浏览器的宽度?

笔记:

  • 我已将此添加到头部:
  • 使用$(window).width()对我来说不是一个选项,因为它不考虑滚动条
  • 我知道我可以将js置于超时function中,但是这个解决方案对我来说是有问题的,因为我将结果存储在我在整个网站的各个地方使用的变量中。
  • 我正在使用运行iOS 9.2的iPhone 5

谢谢!

由于分辨率,Safari在vanilla javascript中获得不一致的宽度。 JQuery通常将其标准化。 尝试使用:

 $(window).width() 

这应该给你正确的宽度。