2013-05-26 43 views
6

檢測設備是否是帶有JavaScript的移動設備最簡單的方法是什麼?檢測帶有javascript的移動設備的最簡單方法

我在考慮檢查高度是否小於或等於iPhone的瀏覽器視口高度。說到這一點,iPhone或移動設備常見的視口高度是多少?

我在JavaScript中遇到了一些問題window.height;,因爲它回來了undefined,但是?

任何人都知道如何做到最好,並簡單地檢測瀏覽器是否是帶有JavaScript的移動設備?

+0

請參閱http://stackoverflow.com/questions/6666907/how-to-detect-a-mobile-device-with-javascript –

+0

@TamilSelvan啊,好的。關於我使用'window.height'並將其與iPhone的瀏覽器視口高度進行比較的解決方案呢?任何想法如何做到這一點? –

+0

使用'screen.height' –

回答

20

這是我有我的業餘愛好項目:

var Environment = { 
    //mobile or desktop compatible event name, to be used with '.on' function 
    TOUCH_DOWN_EVENT_NAME: 'mousedown touchstart', 
    TOUCH_UP_EVENT_NAME: 'mouseup touchend', 
    TOUCH_MOVE_EVENT_NAME: 'mousemove touchmove', 
    TOUCH_DOUBLE_TAB_EVENT_NAME: 'dblclick dbltap', 

    isAndroid: function() { 
     return navigator.userAgent.match(/Android/i); 
    }, 
    isBlackBerry: function() { 
     return navigator.userAgent.match(/BlackBerry/i); 
    }, 
    isIOS: function() { 
     return navigator.userAgent.match(/iPhone|iPad|iPod/i); 
    }, 
    isOpera: function() { 
     return navigator.userAgent.match(/Opera Mini/i); 
    }, 
    isWindows: function() { 
     return navigator.userAgent.match(/IEMobile/i); 
    }, 
    isMobile: function() { 
     return (Environment.isAndroid() || Environment.isBlackBerry() || Environment.isIOS() || Environment.isOpera() || Environment.isWindows()); 
    } 
}; 

你如何使用尺寸的解決方案是不是一個很好的解決方案。它依賴於實際的設備尺寸和許多其他變量。

+0

這看起來不錯!感謝你的分享。但是,我將如何實施或使用它?例如,我只是做'if(isMobile()){// myCodeHere}' –

+0

你的代碼和這個有什麼區別,或者這只是一個更簡潔的版本? 'if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)){//一些代碼..}' –

+3

區別在於我的代碼更加易用,更具可讀性。無論何時你想要檢測移動環境,只要聲明並且可能容易出錯,使用地雷,它只是''Environment.isMobile()'函數調用就可以了。要使用它,您可以將該代碼包含在您的一個JavaScript文件中。然後簡單的做'if(Environment.isMobile()){...}' – dchhetri