2010-07-28 45 views
2

快速的問題。我正在編寫一個網站,並希望根據用戶的瀏覽器以及他們的iPhone操作軟件版本將用戶重定向到不同的網頁。我知道你可能會回頭對我說,應該由用戶決定他們查看哪個網站,他們在這個問題上沒有選擇。Javascript iPhone選擇

我使用的代碼是在JavaScript中,可以識別不同的瀏覽器,但不是iPhone操作系統,這是關鍵。這是代碼:


if(navigator.userAgent.match(/iPhone/i)) { 
    if(navigator.userAgent.match(Version/4)){ 
     if(document.cookie.indexOf("iphone_redirect=false") == -1) window.location ="iPhone4.html"; 
    } 
    if(document.cookie.indexOf("iphone_redirect=false") == -1) window.location ="iPhone.html"; 
} 
//Rest of the site goes here

不知道括號是否在這裏是早,可能有錯,但任何幫助將不勝感激。

薩姆

回答

1

這應該工作:

if(navigator.userAgent.match(/iPhone/i)) { 
    if(navigator.userAgent.match(/iPhone OS 4/i)) { 
     if(document.cookie.indexOf("iphone_redirect=false") == -1) { 
      window.location ="iPhone4.html"; 
     } 
    } 
    else { 
     if(document.cookie.indexOf("iphone_redirect=false") == -1) { 
      window.location ="iPhone.html"; 
     } 
    } 
} 
1

4的iPhone用戶代理字符串是設置這樣的:

的Mozilla/5.0(iPhone; U; CPU iPhone OS 4_0,例如Mac OS X; EN-US)爲AppleWebKit/532.9(KHTML像壁虎)版本/ 4.0.5移動/ 8A293的Safari/6531.22.7

應該幫助你的舊iPhone是:

的Mozilla/5.0(iPhone; U; CPU iPhone OS 3_0,例如Mac OS X; )AppleWebKit/528.18(KHTML,如Gecko)Version/4.0 Mobile/7A341 Safari/528.16

因此,在您的代碼中,iPhone 4的版本爲4.0.5,iPhone爲4.0。

+0

感謝您的答覆,與代碼的問題是,它運行iOS4的意思是第二個「如果」語句不正確地分析,而此時不會選擇正確的頁面那一刻我的代碼: '如果(navigator.userAgent.match(/ iPhone OS 4/I)){' 據說這是爲了檢測iPhone是否正在運行iOS4的。 – SamRowley 2010-07-28 15:38:37

+0

記住您正在使用的完整代碼,我在原始問題中沒有看到該部分,它會幫助您獲得所需的一些內容。 – 2010-07-28 15:42:02