$(window).height()无法在iPad全屏网页应用中使用

时间:2010-12-14 21:34:40

标签: javascript asp.net-mvc mobile-safari

我正在开发一个在iPad移动版Safari中很好地展示的网络应用程序。

当快捷方式保存到跳板时,它最终会很好地运行,将正确的元标记放在一起以显示跳板图标,启动画面等。

不幸的是,应用程序使用$(window).width()$(window).height()并且经常(不总是,不,我不能说什么时候,我对此感到疯狂)$(window).height()调用返回0。

我必须根据视口大小和方向动态设置图像宽度和高度的大小。该应用程序还使用jQuery-ui和jQGrid,当高度计算结果为0时,它们都会中断。

jq-ui对话框显示在屏幕顶部而不是中间,表格也无法正确显示。

4 个答案:

答案 0 :(得分:5)

可能的解决方法是:

height = window.innerHeight ? window.innerHeight : $(window).height()

在此处找到:http://bugs.jquery.com/ticket/6724

答案 1 :(得分:1)

碰巧这不是iPad的问题!在搜索和搜索没有结果后,我决定调查从iPad发出并由asp.net执行的http请求和响应:事实证明,asp.net回复了内容类型设置为“application / xhtml + xml”而不是“text / html”,原因是从http://mdbf.codeplex.com获取的“mobile.browser”文件中的一个错误,该文件为iPad application / xhtml + xml设置为preferredMimeType! 将其重置为正确类型后,一切正常。 我在这里回复以防万一有人可能会遇到同样的问题。 顺便说一句,不再支持mdbf。 所有坦克

答案 2 :(得分:0)

这是因为视口。在常规屏幕上,它是一个基本的X乘Y坐标平面。在触摸屏上,将视口想象成一张纸,在一张大纸(网站)的顶部移动。以下是可能有用的文章:

  

Mobile Safari使用视口向您显示网站。想象一下你面前的一本书。拿一张纸,在里面切一块320×416的正方形,然后把它放在书上。要阅读书籍,请移动纸张并将孔放在要查看的单词上。这正是Mobile Safari的视口正在做的事情。当您轻弹并滚动时,您正在移动视口,而其背后的网站保持静止。

由于此问题,您可能无法获得所需的值。以下是该帖子的链接。希望这将有助于阐明触摸屏应用的定位

http://doctyper.com/archives/200808/fixed-positioning-on-mobile-safari/

此外,李是正确的,你需要确保你的文件准备就绪。

答案 3 :(得分:0)

尝试检查宽度和宽度短暂延迟后的高度 - 例如:setTmeout(300)。