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

ana*_*sia 17 javascript css mobile jquery google-chrome

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

问题:

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

我的问题:

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

链接!

JSBin输出

JSBin代码

顺便说一句

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

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

谢谢!


示例如下:

不允许滚动,地址栏显示

IMG1)

滚动允许,地址栏显示

IMG2

用户滚动,地址栏隐藏

IMG3

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

IMG4

Tim*_*nen 5

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

<body style="margin:0;padding:0;width:100%;height:100%">
  <div style="position:absolute;width:100%;height:100%;overflow:scroll">
    Content
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

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

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

已在Android 4.4.2(Samsung Galaxy Tab 3)中的Chrome Beta 44.0.2403.63和Chrome 43.0.2357.93中进行测试。


Kol*_*ors 2

编辑 v2:一种可能有效的方法是使用“全屏 API”并检测用户每次滚动(使用 jQuery 方法) - 然后告诉浏览器每次退出全屏模式以保留地址栏。请记住,这尚未经过测试,所以请告诉我您是否对这种方法感到幸运......

$(window).scroll(function(){
    document.webkitExitFullscreen();
    document.exitFullscreen();
});
Run Code Online (Sandbox Code Playgroud)

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


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

因此,在桌面版本上禁用了操作地址栏的功能,尽管我还没有找到来源来识别移动 Chrome 上的此功能,但我相信该功能可能是相同的。

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