一開始的想法是用 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 5
xx … 所以找了維基百科來幫忙。
接下來到了 Chrome , Chrome 的字串裡很不幸的也有 Safari
… OTL
就重寫判斷式,當字串滿足 Safari
時先確認字串裡有沒有 Chrome
。
寫完測完沒問題,就先擺著了。
今天剛好有點時間,就想要用 javascript 的方式來改寫。
首先一樣用 document.write(navigator.userAgent)
取得 UA 值,用 replace()
把 /
換成空白,再用 toLowerCase()
轉成小寫。
判斷式都一樣,所以換一換變數名字,用 match()
判斷,就搞定了。
最後再用 regex 把 Safari 3 的版本判斷稍微簡化了一點。
改寫完目前看起來也沒什麼問題…
留言列表