什么可以改变iframe里面的window.innerHeight?

时间:2014-08-13 15:16:56

标签: javascript html iframe mobile-safari

我的手机游戏必须包含在iframe内。游戏页面本身的代码大小适合屏幕正常,iframe的要求是新的。

游戏页面使用由div包围的画布,在使用JS缩放以适应屏幕大小(保持其宽高比)后,使用JS来填充画布周围的空间。每隔几秒就会调用一次,以确保它仍然正确。如果不在iframe内,这已经工作了一段时间。

我现在把游戏放在iframe内,设置为填满屏幕。这在桌面和Android Chrome上运行良好,但iPad Air上的iOS 7 Safari似乎有问题。每次调用大小更新函数并且顶部边框扩展时,游戏向下移动4px。这似乎正在发生,因为window.innerHeight在游戏框架内越来越大。但是,iframe的大小不会改变。

如果iframe本身的大小没有变化,会导致window.innerHeight变更iframe的原因是什么?我觉得某些游戏代码可能会导致更改,但我无法追踪到哪一位,因为我认为window.innerHeight可能无法没有调整窗口大小就改变了。我已经为游戏添加了一个调整大小的侦听器,它确实以与调整更新相同的速率触发,因此我假设其中的某些内容导致window.innerHeight增加。

我不确定这是否相关,但似乎确实稳步增加到1024px,此时它会停止增加。这与window.innerWidth

的值相同

更新:刚刚在iPhone 5上尝试了相同的代码,并且遇到了同样的问题,但innerHeightinnerWidth的结束值是783和568。

0 个答案:

没有答案