用于移除移动networking应用程序中的地址栏的跨平台方法

我正在使用移动networking应用程序,并试图删除地址栏。 它很容易,除非<body>的自然高度不足以允许滚动。 尝试我可能找不到一个可靠的iphone / android,跨设备的方法确保<body>足够高,以允许地址栏消失。 我见过的许多方法都依赖于screen.height ,这使得页面TALLER比需要的更多。 它应该是足够高,以允许地址栏消失,而不是更高!

有没有人有一个处理这个完美的脚本? 我所有我需要确定页面的高度减去iPhone和Android的地址栏。

我试过了:

 screen.height //too tall window.innerHeight //too short document.documentElement.clientHeight //too short document.body.clientHeight //almost but too short 

JQUERY允许。

  • 如何在Android中的错误实现MediaPlayer重新启动?
  • 移动应用程序和PC浏览器之间的点对点通信
  • Android getAllNetworkInfo()已弃用。 有什么select?
  • 如何validationWeb服务调用的来源
  • 如何从Android有限的时间间隔轮询Web服务?
  • 本地networking中的android模拟器访问服务器
  • 如何禁用/启用networking,在Android模拟器切换到Wifi?
  • 如何获得添加到主屏幕在网站上popup在手机浏览器中打开
  • 这个网站也有一些其他的build议,但这个没有废话,不用担心的一个在github中可用:要点,并回答你的问题(粘贴在这里为了方便):

     function hideAddressBar() { if(!window.location.hash) { if(document.height < window.outerHeight) { document.body.style.height = (window.outerHeight + 50) + 'px'; } setTimeout( function(){ window.scrollTo(0, 1); }, 50 ); } } window.addEventListener("load", function(){ if(!window.pageYOffset){ hideAddressBar(); } } ); window.addEventListener("orientationchange", hideAddressBar ); 

    据我所知,加上页面的额外高度的组合(导致你的问题)和scrollTo()语句使地址栏消失。

    在同一个网站上,隐藏地址栏的“最简单的”解决scheme是使用scrollTo()方法:

     window.addEventListener("load", function() { window.scrollTo(0, 1); }); 

    这将隐藏地址栏,直到用户滚动。

    这个站点在同一个超时函数里放置了相同的方法(没有说明理由,但是声明代码在没有它的情况下运行不正常):

     // When ready... window.addEventListener("load",function() { // Set a timeout... setTimeout(function(){ // Hide the address bar! window.scrollTo(0, 1); }, 0); }); 

    我认为它的工作方式是地址栏隐藏,当页面不适合。 所以你想要一个页面正确的窗口的高度,包括地址栏,即window.outerHeight ,不是?