前端判断当前是pc端还是移动端,跳转不同的页面

我是用react脚手架跑的底层,在public中的index.html中做了当前打开的页面是pc还是移动的判断,pc页面还是写在了react项目中,可是在判断pc端的时候并不能跳到那个页面, 请教大神们该怎么实现?特别着急
<script>
function browserRedirect() {

var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) ){
    window.open("http://localhost:8000/src/pages/index.html");
    
}

}
browserRedirect();
</script>

阅读 10.3k
3 个回答

看起来好像判断的不对

chrome会自动拦截弹窗式窗口。
如果是页内跳转可以使用location

pc端正则匹配有问题

clipboard.png

var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";  //bIsCE 为 false
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile"; //bIsWM  为 false

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏