【发布时间】:2016-11-13 20:21:10
【问题描述】:
我只想在移动设备上检测 Chrome,例如 Android 版 Chrome、iOS 版 Chrome。有什么可靠的方法来做到这一点?
编辑 1:如果您想知道为什么...
当地址栏显示/隐藏时,移动版 Chrome 会令人讨厌地更改视口高度。因为我的网站非常依赖 vh 单位,所以在 Android 版 Chrome 和 iOS 版 Chrome 上滚动时的用户体验难看。
我的解决方案是将整个网站包装在一个高度有限的容器中,并将滚动转移到它。这可以防止窗口滚动,从而防止地址栏隐藏。唯一的问题是在桌面浏览器上滚动变得有问题,因为我的布局包含obscure the wrapping container's scrollbar 的固定元素。鉴于我可能永远找不到解决该问题的方法,对我来说最好的方法是在移动设备上检测 Chrome,然后再应用新布局。
编辑 2: this question 中给出的答案对我不起作用。他们甚至可以在 Safari 和普通浏览器上检测 Chrome。
【问题讨论】:
-
您是否有理由需要这样做?浏览器嗅探通常是潜在 XY 问题的迹象。
-
虽然可能是一个“eww”问题,但它不是(必然)“坏”问题。一个好的答案可以突出检测是如何可能的(不同的方法?),并希望提供一个干净的建议作为跟进。
-
我编辑了问题来解释。我经历了各种痛苦来尝试确保我不必这样做,但是唉,这就是它的结果:P
-
简短回答:没有万全之策。
-
地址栏不见了,你打算做什么不同的事情?比如你想用额外的视口高度做什么?
标签: javascript jquery