1

我的 webapp 上有以下代码,仅以横向显示 div。它在手机上运行良好,但在我不想要的 iPad 上也运行良好。有没有办法让这个功能只在手持设备上工作?

$(function(){
window.onload = handleOrientation;
    window.addEventListener('orientationchange', handleOrientation, false);
        function handleOrientation() {
            if (window.orientation == "90" || window.orientation == "-90") {
            document.getElementById("landscape").style.display = 'block';
        } else {
            document.getElementById("landscape").style.display = 'none';
        }
    }
});

我是javascript的新手,多亏了你们,我尽可能快地学习和学习,但我不知道该怎么做。

4

3 回答 3

1

您应该能够区分手机和平板电脑,然后为平板电脑禁用它。

区分的一种方法是找出屏幕宽度。

if (window.screen.width < 320) {
// This is an iphone
// 320 pixels is the width of an iphone
// do the necessary
}

这可能不是最好的方法,但可以解决问题

于 2013-02-22T21:41:12.727 回答
0

您需要进行一些用户代理嗅探,因为仅通过检查屏幕尺寸/像素密度几乎不可能区分手机和平板电脑。甚至用户代理也不是 100% 可靠的。

您可以在这里找到一些灵感:http: //detectmobilebrowsers.com/

于 2013-02-22T21:27:47.320 回答
0

如果您只关心 iPad 作为平板电脑。您可以检查浏览器的用户代理并仅在它是电话时附加侦听器。否则检查它是否是带有用户代理字符串的移动设备。

if (!navigator.userAgent.test(/iPad/i)) {
    // Attcah listener here
}

检查以下问题的答案,了解如何使用用户代理字符串进行检测。

一般如何检测 Android 平板电脑。用户代理?

于 2013-02-22T21:57:07.773 回答