我如何一起检测浏览器和移动设备? JavaScript

问题描述 投票:1回答:1

我正在尝试使用JavaScript识别浏览器,因此我可以全屏播放视频或仅显示警报,我可以识别chrome和safari,并且它们在笔记本电脑/台式机上都很好,只是当我尝试识别是否设备是移动设备,无法正常工作。我没有收到我要获取的警报。我试过了:https://stackoverflow.com/a/3540295。但是我没有运气,除了其他类似的东西(原始答案,因为我不确定正则表达式是什么?):https://stackoverflow.com/a/11381730我现在有这个。我想使用用户代理,除非有更好的方法。JS:

function goFullscreen(id) {
  var element = document.getElementById(id); 
  var mobile = /Android|webOS|iPhone|iPad|iPod/i.test(navigator.userAgent);

  if (ua.indexOf('safari') != -1) { 
      if (ua.indexOf('chrome') > -1) {
        if (element.webkitRequestFullScreen) {
            if(mobile) {
                // some code for chrome mobile
                alert("chrome mobile")
            }else{
                //document.getElementById(id).classList.toggle("videoChange")
                alert("chrome desktop")
            }
        }
      } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen(); //edge do somethig else
      } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen(); //mozilla do somethig else  
      } else if (element.webkitRequestFullScreen) {
             if(mobile) {
                 // some code for safari mobile
                 alert("safari mobile")
             }else{
                element.webkitRequestFullScreen(); //safari do somethig else
             }

        }
    }
}
javascript user-agent
1个回答
0
投票
您应使用导航器对象进行检查。 ua变量未在任何地方定义,因此您将无法访问它。尝试将其放置在控件结构或所有if语句之前:

var ua = navigator.userAgent;

然后,您应该能够访问想要的属性,以捕获网页的使用情况。您还可以更新控制流,以首先检查移动设备,因为您早就设置了布尔值。如果它不是移动的,则跳到您的其他代码位。这样的事情可能会有所帮助:

function goFullscreen(id) { var ua = navigator.userAgent; var element = document.getElementById(id); var isMobile = /Android|webOS|iPhone|iPad|iPod/i.test(ua); if (isMobile) { // some code for mobile alert("on mobile: " + navigator.platform); // display the platform you're on. } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); //edge do somethig else } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); //mozilla do somethig else } else if (element.webkitRequestFullScreen) { element.webkitRequestFullScreen(); //safari do somethig else } }

© www.soinside.com 2019 - 2024. All rights reserved.