2014-08-27 73 views
0

我有一個JavaScript可以檢測iPad並將其重定向到移動網站。我也有一個鏈接,允許用戶離開移動網站查看整個網站。但是,當他們點擊鏈接查看完整網站時,JavaScript會再次觸發並將其重定向回移動網站。我該如何解決?下面是我的JavaScript代碼的示例。使用選項查看iPad設備以查看常規站點JavaScript

if ((navigator.userAgent.indexOf('iPad') != -1)) { 
    document.location = "http://www.sample.com/mobilego.aspx"; 
} 
+1

設置一個表示他們想要完整版本的cookie,然後在重定向之前檢查cookie。 – Barmar 2014-08-27 21:36:42

回答

0

使用sessionStoragelocalStorage存儲重寫重定向的標誌。

E.g.在移動網站

if (window.sessionStorage) sessionStorage.setItem("beenOnMobileSite",true) 

和主站點

if ((navigator.userAgent.indexOf('iPad') != -1 
    && !sessionStorage.getItem("beenOnMobileSite")) { 
    document.location = "http://www.sample.com/mobilego.aspx"; 
} 

代替sessionStorage使用localStorage使覆蓋持久。

如果移動站點和主站點位於不同的服務器上,則它們將無法訪問相同的存儲。解決這個問題的一個辦法是在主頁面的鏈接中添加一個參數,並在主頁面上檢查腳本中的參數。如果該參數存在,則像以前一樣覆蓋重定向,但還要將sessionStoragelocalStorage項設置爲如上,以使其保持不變。

+0

謝謝!這樣可行。但是,如果我正在使用localStorage並且用戶遷移到桌面站點並退出瀏覽器,那麼當他們再次打開瀏覽器時,如何將它們重定向回移動網站?如果你使用sessionStorage,我認爲這會起作用,但我已經嘗試過這個,它甚至不允許我遷移到桌面站點。 – user3813162 2014-08-27 23:13:12

+0

'sessionStorage'應該做你正在尋找的東西(見https://developer.apple.com/library/safari/documentation/iphone/conceptual/safarijsdatabaseguide/name-valuestorage/name-valuestorage.html) - 究竟發生了什麼當你嘗試它? – CupawnTae 2014-08-28 00:22:39

+0

當我嘗試它時,它會在我第一次訪問該地址時將我引導至我的移動網站。但是,當我點擊離開移動網站並全天候前往的鏈接時,它會將我重定向到我的移動網站。 – user3813162 2014-08-28 15:27:51