2013-08-07 39 views
0

由於太長的原因在這裏解釋,我想使用JavaScript將訪客從我的索引頁面重定向到我的移動子域名,如果他們是使用userAgent的某些設備。javascript重定向移動設備,如果referrer不是我的域名

我遇到的問題是移動網站有一個「查看完整網站」鏈接,將您發送到索引頁面。這會創建一個循環條件。

這是我正在努力完成的。


如果引用URL是不是我自己的域名用戶代理相匹配,然後重定向到移動子域。


我很接近但錯過了一些東西。

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

你永遠不能依賴於引用者 – mplungjan

回答

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和私人模式的問題(不存儲任何私人模式)。

+0

**有趣... ** 我之所以推薦路由器的原因是我不必依靠接受cookie的移動設備,而不是私有的(就像我保存我的iPhone) 我接受建議,論點和想法。 我認爲,既然我說什麼買我的推薦人,它會很容易理解。如果它沒有得到一個推薦人沒有什麼大不了...它仍然必須通過userArgent。 你是什麼意思「健壯」? –

相關問題