2013-07-07 21 views
0

我正在研究一個小的PHP驅動的網站,它非常基本,我無法想象在2000年的任何時候瀏覽器,如果不是更遠,會有任何嚴重的問題。使用PHP來確定用戶可以處理FancyZoom

雖然我添加了FancyZoom Javascript圖片查看器,但它是我網站的一部分,我無法在全面兼容性方面打賭我的生活,尤其是考慮到零散的移動瀏覽器(針對例如,我仍然使用iPhone 3GS,所以我知道像我這樣的luddites在那裏)。

我知道瀏覽器/功能檢測經常在這裏討論,但我有一個相對具體的請求,因爲我不是一個最新的網絡程序員。我應該檢測哪些特定功能(或用戶代理,如果可能的話),以確定是否啓用像FancyZoom這樣的圖像查看器,或者直接將用戶直接連接到圖像鏈接?

我想應該有可能過濾出一些圖像加載器無法工作的情況,甚至無法使用那些需要更新的超級複雜用戶代理分析器之一等。這是一個非常簡單,特定的檢測問題。

任何關於如何將它歸結爲最簡單可能的功能來檢查的想法會很好。謝謝!

+0

。因此,如果用戶禁用JavaScript,該網站也應該可以正常工作。用javasript你做一個漸進式的增強。 – bitWorking

回答

-1

你可以做這樣的事情淘汰舊的瀏覽器

$browser = $_SERVER['HTTP_USER_AGENT']; 

if(preg_match('/(?i)MSIE [1-6]/',$browser) && !preg_match('/Opera/i',$browser)) 
{ 
$image = 'Non fancy zoom'; 

} else 

{ 
$image = 'fancy zoom'; 
} 

我還沒有與你的使用jQuery插件搞砸,所以我不知道是什麼瀏覽器是好等,但你可以使用如果使用JavaScript [低調](http://en.wikipedia.org/wiki/Unobtrusive_JavaScript)你usally不需要檢測瀏覽器的下方找到自己的瀏覽器,並只寫規則...

$browser = $_SERVER['HTTP_USER_AGENT']; 
+0

...然後Opera更新以支持所有必需的JavaScript功能,並且該腳本在Opera中仍然無法使用,因爲您決定不基於用戶代理字符串提供它。基於用戶代理識別來取消激活功能是不利的。永遠不要這樣做。使用Javascript來檢測某些對象/方法是否可用,並在必要時處理Javascript級別的後備功能。 – Philipp

+0

我不是選擇Opera或任何其他瀏覽器......這只是一個例子。我不是Java專家,也不是自稱。如果我知道某個瀏覽器有問題,我會以這種方式返回一個靜態圖像(因爲這是我知道的),所以我的網站對該用戶來說不會看起來不好。 我總是喜歡學習一些我每天都不會做的新事物。你能發佈一個在JavaScript中做這個的快速例子,所以我和他可以有它的參考? – LCR

+0

比方說,你有一個功能需要相當新的[Javascript地理定位API](http://diveintohtml5.info/geolocation.html)。使用全局對象'navigator.geolocation'訪問此功能。當瀏覽器具有此對象時,可以假定它支持地理定位。所以你會添加javascript代碼if(typeof navigator.geolocation!='undefined'){''並激活if-block中的功能。 – Philipp

相關問題