用于检测ipad和方向的Javascript解决方案

时间:2012-12-06 12:02:17

标签: javascript ipad

是否有可靠的方法来检测从iPad上查看网页(没有误报)以及通过JavaScript的方向是什么?

我认为这对第一部分有好处:

var isiPad = navigator.userAgent.match(/iPad/i) != null;

我想我找到了第二部分:

<button onclick="detectIPadOrientation();">What's my Orientation?</button>

<script type="text/javascript">
    window.onorientationchange = detectIPadOrientation;
    function detectIPadOrientation () {
        if ( orientation == 0 ) {
            alert ('Portrait Mode, Home Button bottom');
        } else if ( orientation == 90 ) {
            alert ('Landscape Mode, Home Button right');
        } else if ( orientation == -90 ) {
            alert ('Landscape Mode, Home Button left');
        } else if ( orientation == 180 ) {
            alert ('Portrait Mode, Home Button top');
        }
    }
</script>

我不知道所有iPad是否可靠,例如新的小型iPad。所以我的问题是:这些功能是否可以在所有iPad上可靠运行?那会有误报吗?

1 个答案:

答案 0 :(得分:0)

依靠用户代理字符串绝对不是一个好主意,因为它可能是欺骗性的。但是,您应该考虑阅读“响应式网页设计”

http://en.wikipedia.org/wiki/Responsive_web_design

我建议您使用jQuery。我有一种感觉,方向将是风景或肖像。我认为操作系统非常聪明,可以根据您持有设备的方式了解面向浏览器的方式。

考虑一下这个jQuery,这可能是你想要的......

$(window).resize(function() {
    /*  This function should be triggered when the orientation 
        changes since orientation essentially changes the window size. */

    if($(window).width() == ipadLandScapeWidth) {
        //Do this in landscape mode.
    } else {
        //Do this in portait mode.
    }
});