由于这里解释的原因太长,我想使用javascript将访问者从我的索引页重定向到我的移动子域,如果它们是某些使用userAgent的设备。
我遇到的问题是移动网站有一个“查看完整网站”链接,可以将您发送到索引页面。这会创建一个循环条件。
这是我想要实现的目标。
如果,引荐网址不是我自己的网址和,则用户代理会匹配,然后重定向到移动子网域。
我很接近,却遗漏了一些东西。
if (document.referrer != "mydomain.com" &&
(navigator.userAgent.match(/iPhone/i)) ||
(navigator.userAgent.match(/iPod/i)) ||
(navigator.userAgent.match(/iPad/i)) ||
(navigator.userAgent.match(/Googlebot-Mobile/i))); {
location.replace("https://m.mydomain.com");
}
答案 0 :(得分:1)
你的情况有点好笑,你有一个分号,你不应该。
引用者条件将被忽略,因为它刚刚与其他条件一起使用。将所有OR放在括号中,它应该可以工作。
if (document.referrer != "mydomain.com" &&
((navigator.userAgent.match(/iPhone/i)) ||
(navigator.userAgent.match(/iPod/i)) ||
(navigator.userAgent.match(/iPad/i)) ||
(navigator.userAgent.match(/Googlebot-Mobile/i)))) {
location.replace("https://m.mydomain.com");
}
拥有一个链接是一个好主意,因为它表明你知道你永远不会再次猜测用户(和设备识别)100%。
正如mplungjan所说,依靠推荐人不是很强大。我建议你存储一些“会话”信息,注册用户打算在完整网站上查看。然后,这可以覆盖您的开关。
大多数移动浏览器都支持sessionStorage,您可以使用它来跟踪此情况(例如sessionStorage['site'] = 'full'
),尽管我遇到过iOS和私有模式的问题(不会以私密模式存储任何内容)。