用于移除移动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允许。

Solutions Collecting From Web of "用于移除移动networking应用程序中的地址栏的跨平台方法"

这个网站也有一些其他的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 ,不是?