我们有一个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移动站点。
答案 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)