gpt4 book ai didi

javascript - 发送到错误位置的移动重定向代码

转载 作者:行者123 更新时间:2023-11-29 18:54:23 25 4
gpt4 key购买 nike

我想弄清楚为什么我的代码会将桌面浏览器发送到移动网站。无论我在桌面上使用什么浏览器,它都会发送到移动网站。

我也试过删除 else 语句,但没有成功,仍然是同样的问题。

如果有人能指出我的错误,我将不胜感激。非常感谢

$(document).ready(function() {
var isMobile = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/);
if (isMobile) {
// User-Agent is IPhone, IPod, IPad, Android or BlackBerry
document.location.href = 'http://m.domain.co.uk';
} else {
document.location.href = 'https://domain.co.uk';
}
});

最佳答案

实际上 navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/); 返回 null 而不是 true/false

要匹配正则表达式,请创建一个 RegExp 对象并在其上使用 test() 方法。

var mobile = new RegExp(/(iPhone|iPod|iPad|Android|BlackBerry)/);
if(mobile.test(navigator.userAgent)){
console.log("Mobile");
// User-Agent is IPhone, IPod, IPad, Android or BlackBerry
}else{
console.log("Desktop");
// Any other useragent.
}

str.match() 的问题是当找不到匹配项时它返回 null 和当找到匹配项时返回 array of matches .因此,不能使用 if/else 直接处理结果。您需要使用 typeof 检查返回类型,然后执行相应的操作。

虽然 RegExp.test() 非常直接并根据匹配与否返回 true/false

关于javascript - 发送到错误位置的移动重定向代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50014519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com