【问题标题】:How do i know if i'm running on a pc or tablet [duplicate]我怎么知道我是在电脑还是平板电脑上运行[重复]
【发布时间】:2023-03-20 05:49:02
【问题描述】:

是否知道我是在台式机还是移动设备上运行。

由于桌面响应能力不同,我想知道用户是否可以旋转屏幕。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您可以使用脚本来查找您的浏览器用户代理字符串。每个浏览器都有不同的用户代理。 Mac 上的 Safari 和 iPhone 上的 Safari 也有不同的用户代理。

不过我不太确定你的意思,你想让 javascript 知道你使用的是什么类型的设备吗?

【讨论】:

  • 用户代理字符串是一个不可靠的来源,因为它可以被修改并且是一个字符串字段。
【解决方案2】:

我认为您可以使用modernizr 来检测浏览器行为。

触摸事件 touch

Modernizr.touch 测试仅指示浏览器是否支持触摸事件,这不一定反映触摸屏设备。例如,Palm Pre / WebOS(触摸)手机不支持触摸事件,因此无法通过此测试。此外,Chrome(桌面版)曾经谎称它对此的支持,但此后已得到纠正。 Modernizr 还通过媒体查询测试多点触控支持,这就是 Firefox 4 为 Windows 7 平板电脑提供的多点触控支持。有关详细信息,请参阅 Modernizr 触摸测试。

建议同时设置触摸 鼠标事件,以适应混合设备 - 请参阅 Touch And Mouse HTML5 Rocks 文章。

【讨论】:

    【解决方案3】:

    下面将为您提供用户代理。

    navigator.userAgent
    

    然后你可以使用类似的东西:

    if(navigator.userAgent.indexOf("DESIRED USER AGENT") != -1) {
        // Mobile specific code
    }
    

    您应该会发现以下主题很有帮助:Auto detect mobile browser (via user-agent?)

    【讨论】:

      【解决方案4】:

      您可以使用 Modernizr:

      Modernizr 创建一个元素,在该元素上设置特定的样式指令,然后立即尝试检索该设置。理解指令的网络浏览器会返回一些合理的东西;不理解它的浏览器将不会返回任何内容或“未定义”。 Modernizr 使用结果来评估网络浏览器是否支持该功能。

      例如:

      if ( Modernizr.touch ) {
      // mobile
      } else {
      // desktop
      }
      

      以下链接有一些用于检测浏览器的 javascript 内置函数:

      http://www.quirksmode.org/js/detect.html

      【讨论】:

        【解决方案5】:

        查看mobile detect。它可能对你想要的有点多,但它很全面。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-11-30
          • 2012-08-31
          • 2014-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-30
          • 1970-01-01
          相关资源
          最近更新 更多