2012-08-05 66 views
2

我在尋找一種方法來檢測一個網頁是否被iPhone訪問。使用Javascript來檢測iPhone的網頁瀏覽器

我基本上尋找的是一種方法來阻止除iPhone之外的所有瀏覽特定的網頁。

喜歡的東西...

如果瀏覽器= iPhone則退出!;

這是可能使用Javascript?

+0

我能問爲什麼? (我的Android不在很酷的兒童俱樂部?)很多年前,我們試圖讓只有某些瀏覽器才能看到我們的網頁,而我們後來認爲這是一個糟糕的主意。這就是爲什麼 - 到目前爲止 - IE宣稱它是Mozilla。不要檢測瀏覽器;特徵檢測。 – josh3736 2012-08-05 22:50:57

+0

沒有什麼特別的原因 – Satch3000 2012-08-06 09:34:09

+0

這只是爲了測試,雖然 – Satch3000 2012-08-06 09:34:27

回答

12
if (navigator.userAgent.toLowerCase().indexOf("iphone") ==-1) 
    location.replace("goaway.html"); 
+0

如果這是一個監獄破碎的iP​​hone運行Safari瀏覽器以外的瀏覽器? – RobG 2012-08-06 00:05:54

+3

又是什麼?或者帶有僞裝用戶代理的Safari瀏覽器。或者關閉JS的任何東西 – mplungjan 2012-08-06 03:15:22

+0

準確地說,在服務器上也是這樣,或者在網站上放一個「iPhone用戶點擊這裏」按鈕。 – RobG 2012-08-06 12:11:00

3
if(navigator.userAgent.match(/iPhone/i)) { 
    ... 
} 

雖然我建議你在加載DOM之前做到這一點,例如,用PHP:

<?php 
    if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone')) { 

    } 
?> 
+3

好的答案 - 但沒有必要匹配,只是爲了測試'iPhone'字符串的存在,所以'indexOf( )'更好。 – Utkanos 2012-08-05 22:08:19

0

如果你需要其他平臺以及解決方案 -

我寫這is-mobile component,可以檢測出是否你在Android,iOS和其他平臺的運行好。

隨意導入並示出在這些例子中使用:

isMobile.Android() => true/false 
isMobile.iOS() => true/false 
isMobile.any() => true/false 
isMobile.KindleFire() => true/false 
isMobile.BlackBerry() => true/false