强制地址栏显示在移动Chrome应用中

我正在开发一个网络应用程序。 大多数应用都禁用了滚动,但是一个全屏面板需要可滚动。

问题:

如果用户位于可滚动的应用程序部分中,并向下滚动,则地址栏将消失。 如果在地址栏消失后,用户通过单击固定位置菜单栏上的X决定退出该面板,则地址栏永远不会被触发(因为向上滚动不会发生),因此用户陷入滚动状态-disabled address-bar-less state。

我的问题:

是否可以强制触发地址栏以在Google Chrome中显示?

链接!

JSBin输出

JSBin代码

顺便说一句

简单地设置$(window).scrollTop(0)不会这样做。

使用开发工具进行模拟不起作用。 您需要在Chrome应用中的移动设备中打开它。

谢谢!


示例如下:

不允许滚动,地址栏显示

IMG1

滚动允许,地址栏显示

IMG2

用户滚动,地址栏隐藏

IMG3

返回滚动禁用div,隐藏地址栏

IMG4

一种解决方法是使用div作为正文内容的可滚动容器。 这样,正文不可滚动,但内部div和Chrome在滚动此内部div时不会自动隐藏地址栏:

 
Content

滚动条可见: http : //jsbin.com/zibewepiwo

滚动条自动隐藏: http : //jsbin.com/yeyapijulo

在Android 4.4.2(三星Galaxy Tab 3)中测试了Chrome Beta 44.0.2403.63和Chrome 43.0.2357.93。

编辑v2:一种可能有效的方法是使用“全屏API”并在每次用户滚动时检测(使用jQuery方法) – 然后告诉浏览器每次都要退出全屏模式以保留地址栏。 请记住这是未经测试的,请告诉我你是否对这种方法有任何好运……

 $(window).scroll(function(){ document.webkitExitFullscreen(); document.exitFullscreen(); }); 

编辑:从移动Chrome应用的常见问题页面中读取,它表示滚动地址栏时会自动禁用,但它没有指定任何禁用此function的方法。 这进一步表明这是不可能的结论。


虽然这可能不是您问题的答案,但我相信值得一提的是,出于特定的安全原因,许多浏览器忽略了手动操纵浏览器工作或显示方式的尝试 – 通常与网络钓鱼有关。

出于这个原因,在桌面版本上禁用了操纵地址栏的function,虽然我还没有找到在移动Chrome上识别此function的来源,但我相信这种能力可能会相同。

https://bugzilla.mozilla.org/show_bug.cgi?id=337344

 body { position: fixed; top: 0; left: 0; bottom: 0; right: 0; margin: 0; } .content { position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; -webkit-overflow-scrolling: touch; } 

regorance来自http://goratchet.com/examples/app-movies/

通过chrome dev-tool,我们可以看到源代码。

在页面上使用此样式代码。现在您的chrome url栏不会隐藏。它将停止滚动。

  

你也可以在这里看到