Mutli网站重定向JS

时间:2014-07-31 16:03:09

标签: 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)
 || 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移动站点。

1 个答案:

答案 0 :(得分:0)

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

if(refer.indexOf("site1") ==-1)

进入这个:

if(refer.indexOf("site1") !=-1)

当您 拥有site1的推荐人时,旧代码会将您的网页重定向到site1的移动版。

如果确实拥有site1的推荐人,新代码会将您重定向到site1的移动版本。

如果document.referrer不包含“site1”,可能是因为没有引荐来源,有人手动输入URL,或者点击浏览器外部的链接。

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

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf