Javascript的navigator.userAgent判斷使用者的瀏覽器版本是好方法嗎?

我們先把話說在前頭, Javascript的所有函數並不適用在所有的瀏覽器, 這個大家都贊同吧?

所以你一定會跟我一樣想先擷取使用者的瀏覽器版本, 看看它是用IE, MOZILLA還是Opera等等的, 但這樣的方法真的好用嗎? 老實說這是相當難維護的, 因為瀏覽器會一直更新, 如果你都用IF ELSE來判斷它的版本應該會要一直更新吧, 而且你又要怎麼判斷你的使用者會不會比你更快更新它的瀏覽器呢?

舊的方法如下:

javascript:alert(navigator.userAgent);

如果你使用IE7, 它會回傳給你: Mozilla 4.0/ …..

這樣的方法真的不是很好, 在這裡有個不錯的方式來判斷:

if (typeof featureName != “undefined”) {
// 程式碼
}

舉例如下:

if (typeof document.getElementById != “undefined”) {
alert(“getelembyid is supported”);

} else {
alert(“no getelembyid support”);
}

我們要判斷瀏覽器是否支援getElementById 就可以直接用typeof document.xx != “undefined” 來判斷 如果使用者不支援這個函數你就可以再另外想辦法. 另外一種寫法如下:

var getElem = (typeof document.getElementById == “function”) ? true : false;
if (getElem) {
// 我們知道GetElementbyId是支援的,
// 所以我們就可以用它.
}

這樣是不是比較實際且容易維護呢?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *