一開始的想法是用 php 。

首先用 echo $_SERVER["HTTP_USER_AGENT"] 取得 UA 值,並用 str_replace()/ 全部換成空白。

先處理作業系統。
Windows 要辨別 XP/Vista/7/2000 四種版本,四種 OS 版本的代號不一樣,所以只要用 eregi() 找到 Windows NT 5.1/6.0/6.1/5.0 就好了。
Mac OS X 找 Mac OS X 。其他的作業系統不熟,於是使用 Google 大神拜得 UA 資料…Orz

再來處理瀏覽器。
一樣的想法, IE 要辨別 IE6/7/8 ,所以找 MSIE 6.0/7.0/8.0 。Firefox 2/3 和 Opera 也沒有什麼問題。
到了 Safari 和 Chrome 時,中了大獎…
首先是 Safari 3/4 的版本字串不一樣,都是 Safari 5xx … 所以找了維基百科來幫忙。
接下來到了 Chrome , Chrome 的字串裡很不幸的也有 Safari … OTL
就重寫判斷式,當字串滿足 Safari 時先確認字串裡有沒有 Chrome
寫完測完沒問題,就先擺著了。

今天剛好有點時間,就想要用 javascript 的方式來改寫。

首先一樣用 document.write(navigator.userAgent) 取得 UA 值,用 replace()/ 換成空白,再用 toLowerCase() 轉成小寫。
判斷式都一樣,所以換一換變數名字,用 match() 判斷,就搞定了。
最後再用 regex 把 Safari 3 的版本判斷稍微簡化了一點。
改寫完目前看起來也沒什麼問題…

 


Tags: UA User-Agent 作業系統 瀏覽器 OS


創作者介紹

旅行的記憶

repeat<')">< 發表在 痞客邦 PIXNET 留言(0) 人氣()