2011-01-13 75 views
4

我想在Javascript中将事件绑定到orientationchange或在Android中调整事件大小,以便更改我的web应用程序的一些元素的宽度/高度。在事件中,我使用window.innerHeight和window.innerWidth来获取窗口的当前高度和宽度。Android的方向变化调整大小的HTML元素

这适用于iOS和桌面设备,但在Android上它似乎在更改窗口变量中的值之前调用此事件。因此,当某人从纵向切换到横向时,我仍然获得纵向值,因此无法正确调整大小。有谁知道问题是什么,以及我如何解决它?

回答

4

我有固定的问题。事实证明,resize事件可以正常工作,但orientationchange事件不会。我正在测试以确定orientationevent是否存在,然后如果可能的话绑定。我已将代码更改为仅使用resize事件,并取得了预期的效果。

我不确定这是否对我的代码是独一无二的,但这是为我修复的。

0

我可以确认“orientationchange”-event在android 2.2和2.3中无法正常工作。它说,当你检查可用性但它不会开火时它会出现。它在Android 1.6和2.1中工作。我结束了,就像你一样,使用所有Android版本的“resize”事件。

2

我的调查表明,这个Android的WebView错误(“orientationchange”大火改变window.innerHeight JavaScript值前20-150ms)当您修改Web视图的默认用户代理存在。不过,不要问我如何与另一个人相关。

但解决您的万阿英,蒋达清,你可以做下列操作之一:

1)也会从你的代码

webView.getSettings()setUserAgentString(“自定义用户摆脱了下列用户代理修改-agent“);

2)使用“调整”事件而不是“orientationchange”事件