Javascript 多站点重定向JS

Javascript 多站点重定向JS,javascript,redirect,mobile,Javascript,Redirect,Mobile,我们有一个mutlisite drupal站点,其中一个站点(例如site1.com)转到移动站点,而站点2没有。因此,编写了以下代码 (function(){ if( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || na

我们有一个mutlisite drupal站点,其中一个站点(例如site1.com)转到移动站点,而站点2没有。因此,编写了以下代码

(function(){
 if( navigator.userAgent.match(/Android/i)
 || navigator.userAgent.match(/webOS/i)
 || navigator.userAgent.match(/iPhone/i)
 || navigator.userAgent.match(/iPod/i)
 || navigator.userAgent.match(/BlackBerry/i)
 || navigator.userAgent.match(/Windows Phone/i)
 ){
var refer = document.referrer
    if(refer.indexOf("site1") ==-1)
    window.location = "http://www.site1.com/mobile/";
  }
})();

因此,理论上,上面的代码应该重定向到site1的移动站点设置,site2应该转到它的正常站点。但是,此代码导致两个站点重定向到site1移动站点。

重新阅读后,我认为这解决了您的问题, 编辑原始代码的这一行:

if(refer.indexOf("site1") ==-1)
为此:

if(refer.indexOf("site1") !=-1)
当您没有站点1的推荐人时,旧代码将页面重定向到站点1的移动版本

新代码会将您重定向到site1的移动版本,如果它没有site1的推荐人

如果document.referer不包含“site1”,可能是因为没有referer,当有人手动输入URL或从浏览器外部单击链接时就是这种情况

您可能需要依赖document.location,它实际上始终与浏览器URL栏中最初显示的地址匹配


()

文档引用人的价值是什么?如果它不是您期望的值,它将转到站点1。这就是您描述的行为。感谢您指出这一点。奇怪的是,为什么site1和site2都使用site1的手机。如果我将-1改为1,这是否有助于缩小site1的范围?嗨,Joeppie。感谢您提供的信息,但是从您的回答中,您是说旧代码在没有site1的Referer时被重定向,但它正在重定向site 1和site 2以重新迭代:document.Referer的价值是什么?建议的替换可能永远不会重定向,这将表明该文档。referer从不包含“site1”