用JS偵測使用者是不是用行動裝置瀏覽

一般我們在設定RWD的版面時,通常都是用 @media() 來處理,但如果有使用者非要把電腦版的瀏覽器視窗縮小到行動版的寬度,那也是無可奈何,雖然一般情境下極少人會這樣做,但我還遇過客戶這樣要求的。

再來,也有可能是行動版才會出現某些區塊或按鈕,若一樣用寬度的方式處理,恐怕也會有問題產生,所幸用JS就可以偵測使用者是不是真的用「行動裝置」來瀏覽,正好有爬到一些文章,在這邊也分享給大家。

解法是偵測瀏覽器的 userAgent 裡有無行動裝置相關的關鍵字,再利用返回的值去判斷要不要執行,統整如下

 

function isMobileDevice() {
    const mobileDevice = ['Android', 'webOS', 'iPhone', 'iPad', 'iPod', 'BlackBerry', 'Windows Phone']
    let isMobileDevice = mobileDevice.some(e => navigator.userAgent.match(e))
    return isMobileDevice
}

主要是看返回值是不是 true ,大家可以參考看看

 

原文出處