Javascript Ipad:window.height()在Safari中给出了错误的值,但在Chrome中没有

Javascript Ipad:window.height()在Safari中给出了错误的值,但在Chrome中没有,javascript,ipad,safari,height,Javascript,Ipad,Safari,Height,我必须在Ipad上获得窗口的高度,才能以全高显示某些东西 我已经完成了这个示例页面: 这是我的js代码,非常简单,只在主体中写入window.height() generalResizeListener=function(){ screenW=$(window).width(); screenH=$(window).height(); $("body").html(screenH) console.log(screenH); } $(window).resize(

我必须在Ipad上获得窗口的高度,才能以全高显示某些东西

我已经完成了这个示例页面:

这是我的js代码,非常简单,只在主体中写入window.height()

generalResizeListener=function(){
    screenW=$(window).width();
    screenH=$(window).height();
    $("body").html(screenH)
    console.log(screenH);
}
$(window).resize(generalResizeListener);
在IOS7的ipad2上有两个问题: -在safari中,而不是在Chrome中,显示的值与实际页面高度不符(我在屏幕截图上检查过)

-在Safari中,即使页面中没有任何内容,页面的高度也比视口大,我可以向下滚动10-20px。这是最大的问题

你知道为什么会这样吗?我的演示页面中没有任何css文件,所以我真的不明白

提前感谢您的帮助! 大卫


@加五:

我已经实现了这个“黑客解决方案”。无论如何,谢谢你的回答!我在谷歌上看了更多,这似乎是safari IOS7的一个特定bug:

-

-


-

iOS上的Safari浏览器有一个底部栏(与chrome不同),它在窗口高度内进行计算,而实际上它不是窗口/页面的一部分

您需要检测(使用用户代理)客户端在iOS设备上使用Safari浏览器的情况,然后您需要将主体的高度(使用javascript)设置为
$(window).height()-bar\u height
,它应该可以解决您的问题


希望能有所帮助。

iOS上的Safari浏览器有一个底部栏(与chrome不同),它在窗口内计算,而实际上它不是窗口/页面的一部分

您需要检测(使用用户代理)客户端在iOS设备上使用Safari浏览器的情况,然后您需要将主体的高度(使用javascript)设置为
$(window).height()-bar\u height
,它应该可以解决您的问题


希望能有所帮助。

iOS上的Safari浏览器有一个底部栏(与chrome不同),它在窗口内计算,而实际上它不是窗口/页面的一部分

您需要检测(使用用户代理)客户端在iOS设备上使用Safari浏览器的情况,然后您需要将主体的高度(使用javascript)设置为
$(window).height()-bar\u height
,它应该可以解决您的问题


希望能有所帮助。

iOS上的Safari浏览器有一个底部栏(与chrome不同),它在窗口内计算,而实际上它不是窗口/页面的一部分

您需要检测(使用用户代理)客户端在iOS设备上使用Safari浏览器的情况,然后您需要将主体的高度(使用javascript)设置为
$(window).height()-bar\u height
,它应该可以解决您的问题


希望能有所帮助。

我使用此JavaScript解决方案来解决该问题:

    if (navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i) && window.innerHeight != document.documentElement.clientHeight) {
  var fixViewportHeight = function() {
    document.documentElement.style.height = window.innerHeight + "px";
    if (document.body.scrollTop !== 0) {
      window.scrollTo(0, 0);
    }
  }.bind(this);

  window.addEventListener("scroll", fixViewportHeight, false);
  window.addEventListener("orientationchange", fixViewportHeight, false);
  fixViewportHeight();

  document.body.style.webkitTransform = "translate3d(0,0,0)";
}

我使用这个JavaScript解决方案来解决这个问题:

    if (navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i) && window.innerHeight != document.documentElement.clientHeight) {
  var fixViewportHeight = function() {
    document.documentElement.style.height = window.innerHeight + "px";
    if (document.body.scrollTop !== 0) {
      window.scrollTo(0, 0);
    }
  }.bind(this);

  window.addEventListener("scroll", fixViewportHeight, false);
  window.addEventListener("orientationchange", fixViewportHeight, false);
  fixViewportHeight();

  document.body.style.webkitTransform = "translate3d(0,0,0)";
}

我使用这个JavaScript解决方案来解决这个问题:

    if (navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i) && window.innerHeight != document.documentElement.clientHeight) {
  var fixViewportHeight = function() {
    document.documentElement.style.height = window.innerHeight + "px";
    if (document.body.scrollTop !== 0) {
      window.scrollTo(0, 0);
    }
  }.bind(this);

  window.addEventListener("scroll", fixViewportHeight, false);
  window.addEventListener("orientationchange", fixViewportHeight, false);
  fixViewportHeight();

  document.body.style.webkitTransform = "translate3d(0,0,0)";
}

我使用这个JavaScript解决方案来解决这个问题:

    if (navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i) && window.innerHeight != document.documentElement.clientHeight) {
  var fixViewportHeight = function() {
    document.documentElement.style.height = window.innerHeight + "px";
    if (document.body.scrollTop !== 0) {
      window.scrollTo(0, 0);
    }
  }.bind(this);

  window.addEventListener("scroll", fixViewportHeight, false);
  window.addEventListener("orientationchange", fixViewportHeight, false);
  fixViewportHeight();

  document.body.style.webkitTransform = "translate3d(0,0,0)";
}
我的解决办法是

在您的页面上插入以下内容:

<div id="win-height" style="position: fixed;left: 0; top: 0; bottom:0; width: 0; z-index: "></div>
要获取窗口高度,请使用

$('#win-height').height()
祝你好运

我的解决方案是

在您的页面上插入以下内容:

<div id="win-height" style="position: fixed;left: 0; top: 0; bottom:0; width: 0; z-index: "></div>
要获取窗口高度,请使用

$('#win-height').height()
祝你好运

我的解决方案是

在您的页面上插入以下内容:

<div id="win-height" style="position: fixed;left: 0; top: 0; bottom:0; width: 0; z-index: "></div>
要获取窗口高度,请使用

$('#win-height').height()
祝你好运

我的解决方案是

在您的页面上插入以下内容:

<div id="win-height" style="position: fixed;left: 0; top: 0; bottom:0; width: 0; z-index: "></div>
要获取窗口高度,请使用

$('#win-height').height()

祝你好运

看看日期。当时没有iOS7.Czendorf,是的,对不起。看看日期。当时没有iOS7.Czendorf,是的,对不起。看看日期。当时没有iOS7.Czendorf,是的,对不起。看看日期。当时没有iOS7.czendorf,是的,对不起。你能发布那个函数吗?你能发布那个函数吗?你能发布那个函数吗?你能发布那个函数吗?