如何同时检测浏览器和移动设备?JavaScript

Str*_*der 5 javascript user-agent

我正在尝试使用 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
             }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*Lee 5

您应该使用导航器对象进行检查。ua 变量没有在任何地方定义,因此您将无法访问它。尝试在控制结构或所有 if 语句之前使用它:

var ua = navigator.userAgent;
Run Code Online (Sandbox Code Playgroud)

那么您应该能够访问您要查找的属性以捕获正在使用该网页的内容。您还可以更新控制流以首先检查移动设备,因为您很早就设置了该布尔值。如果它不是移动的,则跳至您的其他代码位。像这样的事情应该有帮助:

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
  }
}
Run Code Online (Sandbox Code Playgroud)