2010-11-01 54 views
-1

確定用戶是否實際使用Safari的最佳方式是什麼?什麼是確定用戶是否實際使用Safari的最佳方式?

+4

出於好奇,爲什麼要特意檢測Safari? – Andy 2010-11-01 16:18:00

+6

在大多數情況下,您不想檢測瀏覽器,只需瀏覽器功能。你做什麼需要你發送Safari的東西,因爲它是Safari? – Sorpigal 2010-11-01 16:20:34

+0

你們關於什麼? =) – Cover 2010-11-02 01:54:49

回答

4

您可能需要閱讀http://www.quirksmode.org/js/detect.html然後http://www.quirksmode.org/js/support.html和理解,你能做的最好的是探測用戶會告訴你什麼是他們使用的瀏覽器(這將是User_Agent類)。你絕不能100%肯定地說他們使用的是給定的瀏覽器,因爲你必須依賴於瀏覽器傳輸的內容,並且可以在很多地方覆蓋它。

但是,quirksmode.org解決方案通常是處理跨所有引擎和瀏覽器的單一檢查的最佳方法。

您是否使用特定的JavaScript框架,可以讓您更準確地確定它們正在使用的內容?你使用什麼服務器端語言? (以及其他人問,爲什麼只有Safari?)

+0

太多的問題與我的問題無關。這只是你的好奇心......大聲笑! – Cover 2010-11-02 01:59:35

+0

@cover〜儘管如此,它們仍然是有效的問題。請接受答案或關閉問題。成爲一名優秀的社區成員。 – jcolebrand 2010-11-05 14:23:39

1

其他人已經注意到,瀏覽器嗅探並不理想,但有些情況下只發生在瀏覽器中的錯誤,並且很難檢測到。在這種情況下,你可以做瀏覽器嗅探,並希望用戶代理字符串是有效的。這是Ext-JS所做的。

var ua = navigator.userAgent.toLowerCase(); 
var isChrome = /\bchrome\b/.test(ua); 
var isSafari = !isChrome && /safari/.test(ua); 

線62查看源代碼的:HTTP://dev.sencha.com/deploy/dev/docs/source/Ext.html擁有所有分機的瀏覽器檢測在一個易於閱讀的格式。

這是脆弱的,並可能無法正常工作,因爲新版本和瀏覽器出來。

告訴我們爲什麼要測試safari,所以我們可以確保沒有更好的方法來實現你想要的。

+0

這是我的替代首選方法。又,這是我寧願依賴的。 – jcolebrand 2010-11-01 20:10:37

1
if(navigator.userAgent.toLowerCase().indexOf("safari") != -1 && navigator.userAgent.toLowerCase().indexOf("chrome") == -1){ 
    // you code here 
} 
相關問題