簡體   English   中英

我的“ isMMobile()”功能正在將桌面用戶代理檢測為移動

[英]My “isMMobile ()” function is detecting desktop user agent as mobile

這是什么設備? 我的功能是將此設備檢測為移動設備

“像Gecko一樣的Mozilla / 5.0(Windows NT 6.1; Trident / 7.0; rv:11.0)”

function isMMobile() {

    var device_agent = navigator.userAgent.toLowerCase();
    if (/android|webos|iphone|ipad|ipod|blackberry|windows phone|opera mini|iemobile|tablet|nokia|kindle|mobile/i.test(device_agent)) {
        return true;
    }

    if (window.DocumentTouch && document instanceof window.DocumentTouch) {
        return true;
    }

    if (typeof window.orientation === "number" || 
        'ontouchstart' in window || 
        window.ontouchstart || 
        'ontouchstart' in document.documentElement || 
        "ontouch" in window || 
        window.onmsgesturechange || 
        window.navigator.msMaxTouchPoints || 
        window.navigator.MaxTouchPoints > 0) {
        return true;
    }

    return false;
}

var innerw = window.innerWidth || document.documentElement.clientWidth;
var ismob = isMMobile();

通過ajax發送的數據:

ismob=yes&innerw=800

那是Windows 7上帶有觸摸屏的IE 11。 現在,大多數Windows筆記本電腦都具有觸摸功能(並且有一段時間),因此,如果您的邏輯基本上是“觸摸==移動”,那么您會誤認很多設備。 那里有很多移動檢測腳本,這也很有用,因為其他人必須跟上新的用戶代理和設備。 如果可以的話,讓他們處理檢測中的頭疼問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM