2012-09-26 145 views
3

我編寫了幾行java腳本代碼。但我不確定這是否正確。 幾個月前我發佈了一個桌面版網站。但是當用戶通過移動設備(如android,iPhone或可能是windows phone)時,我想重新定向一條新路徑。這裏是代碼:重定向到移動網站

// JavaScript Document 
var uAgent = navigator.userAgent.toLowerCase(); 

if(uAgent.indexOf("android") > -1 || uAgent.indexOf("iphone") > -1 || uAgent.indexOf("windows phone") > -1) { 
    window.location = "http://website path will come here."; 
} 

這是正確的代碼?

+0

屬於上http://codereview.stackexchange.com/ – Quentin

+0

http://stackoverflow.com/questions/6666907/how-to-detect-a-mobile-device-with-javascript可能重複 –

回答

4

,將工作,但它不是一個偉大的方式來爲一對夫婦的理由這樣做:

  1. 用戶禁用JavaScript將不被重定向

  2. 移動用戶(有些慢的瀏覽器和嚴格的帶寬限制)將在重定向到移動網站之前下載您的桌面頁面。

如果可能的話,更好的方法是通過Web服務器配置進行管理,理想情況下不需要任何重定向。或者,考慮向所有用戶提供相同的內容並使用媒體查詢更改佈局。

+0

好的,謝謝你的建議,你絕對正確 –

+0

或者你可以使用一個小的網關頁面,重定向到桌面和移動版本時你確定阿博用戶代理,並讓用戶選擇何時用戶代理是ambigious或JavaScript被禁用。允許用戶隨時在兩個版本之間跳轉,在任何設備的某些場合也可能會有所幫助。當您的網站由於某種原因加載速度非常緩慢時,甚至桌面用戶也可能希望切換到帶寬較低的移動版本,而智能手機用戶可能希望在瀏覽器可以處理時嘗試完整版本。 – Philipp

+0

好的。還有一個疑問。在上面的代碼中,當我檢查字符串「android」時,假設它被發現並且uAgent是android,那麼它將工作在所有android設備上。但我想爲平板設備不同。對於我想要顯示桌面版網站的平板電腦設備。所以我將如何檢查。任何想法。 –

4

如果您確實需要檢測移動瀏覽器(而不是在移動瀏覽器上使用Just Works的Responsive template,Initializr等移動友好的響應式佈局 - Google爲「移動優先」和「響應式設計」再看看這些鏈接:

噸的移動瀏覽器 - 不僅是iPhone,Android和Windows - 所以,如果你要發現他們,那麼你需要做的是正確的。另請參閱jQuery Mobile,這是一個非常棒的移動框架,可讓您的生活更輕鬆。

+0

這是一個很好的資源。但所有的代碼是壓縮的,所以,有沒有關於如何使用所有這些的任何文檔 –

2
uAgent.indexOf("android") > -1 

Android不僅僅是智能手機的操作系統。它也運行在很多可以輕鬆處理大多數網站的桌面優化版本的平板電腦上。我的一個朋友剛剛抱怨說,一些網站僅服務於移動版本,他的GalaxyTab,即使普通版看起來好他的10.1" 屏幕上。

你也忘了黑莓和Symbian手機。

+0

不僅平板電腦,我見過上網本和運行Android的筆記本電腦。 – rsp

+0

我只想爲Android,iPhone和Windows手機。我只是在試驗。順便謝謝你的迴應。 –