针对用户的物理设备操作,很多智能手机会更新屏幕的显示方向。例如,当用户将智能手机从纵向模式旋转为横向模式时,设备会 通过切换屏幕的方向来做出反应。智能手机浏览器将此事件交由移动Web开发人员通过JavaScript使用浏览器window对象的onresize 或onorientationchange事件进行处理。
智能手机浏览器支持上面所述的两种事件中的一种或两种,因此在决定哪个事件最适宜在目标浏览器上进行处理时,机上测试起到 至关重要的作用。iPhone支持这两种事件,而移动开发人员通常只处理onorirentationchange事件即可检测方向变更。Android和其 他源自WebKit的浏览器仅支持onresize事件。BlackBerry设备针对document对象支持onresie事件,但是,只有少数的BlackBerry设 备支持屏幕方向变更。
在方向变更事件的事件处理程序内部,开发人员可以使用两种方法之一获取当前屏幕尺寸和设备方向。iPhone开发人员可以使用内 置的window.orientation Javascript整数属性,该属性的值用于说明当前的浏览器方向。
此外,还可以使用内置的JavaScript属性screen.width和screen.height并执行简单的数学计算来确定设备的方向。如果屏幕的宽 度大于高度,则设备的方向为横向。否则,设备的方向为纵向。下面的JavaScript示例代码命名用内置的JavaScript属性来确定设 备的方向:
var width = parseInt(screen.width);
var height = parseInt(screen.height);
if (width > height) {
//方向为横向
}
else {
//方向为纵向
}
摘自:智能手机Web标准开发实战