在 chrome (android) 上隐藏移动浏览器地址栏
Posted
技术标签:
【中文标题】在 chrome (android) 上隐藏移动浏览器地址栏【英文标题】:hide mobile browser address bar on chrome (android) 【发布时间】:2013-07-21 10:21:43 【问题描述】:我们有一个网站,使用简单的 javascript
<body onLoad="setTimeout(function() window.scrollTo(0, 1), 100);">
我们在大多数浏览器(safari 和原生 android 浏览器)上隐藏了地址栏,这行 JavaScript 对大多数人来说都可以正常工作,但我们注意到 chrome 上有一个奇怪的行为,页面确实向下滚动,但地址栏没有不要隐藏!页面加载完成后,如果用户用手指向下滚动一点,地址栏会正常隐藏。
我也试过用JS向下滚动所有页面,页面完全滚动的结果,地址栏仍然可见...
有人知道我是否忘记使用某些技巧,或者 Chrome 中根本不存在此功能吗?
【问题讨论】:
您的应用程序中是否有 webview 并且要隐藏地址栏? 不,我有一个网站的移动版本,(以前类似于 web 应用程序),我想隐藏设备浏览器的地址栏,这适用于默认浏览器 nd 对于某些其他的,比如 doplhin、safari 等等,但是对于 chrome,这个 hack 不起作用。 【参考方案1】:scrollTo(0,1) 在 Chrome for Android 中尚不支持(它是最近添加的,然后被删除)。我们确实有 FullScreen API,但对于您想要实现的目标来说,这有点笨拙。
【讨论】:
scrollTo() 在 Chrome for Android 中得到完全支持,但它并没有像你想象的那样做。【参考方案2】:Chrome Mobile 的最新更新(7 月 22 日)似乎破坏了工具栏自动隐藏功能。向下滚动页面时,工具栏不再自动隐藏。我的 Nexus 4 就是这种情况。
7 月 22 日更新为平板电脑带来全屏模式。但我猜他们不小心破坏了智能手机的功能。全屏模式以前可以在智能手机上使用。
Chrome Browser Play Store
【讨论】:
【参考方案3】:我找到了第一次点击后如何隐藏地址栏的方法
if (document.body.webkitRequestFullScreen)
window.addEventListener('click', function(e)
if (e.target.type != 'text' && e.target.type != 'password')
body.webkitRequestFullScreen();
window.setTimeout(function()
document.webkitCancelFullScreen();
, 500);
, false);
【讨论】:
"不要拦截第一个触摸事件并发出请求全屏。" - html5rocks.com/en/mobile/fullscreen以上是关于在 chrome (android) 上隐藏移动浏览器地址栏的主要内容,如果未能解决你的问题,请参考以下文章
如何在移动 Android 智能手机上的 Chrome 浏览器中进行“硬页面重新加载”
Android Chrome 浏览器地址栏移动固定元素命中区域