首頁 >web前端 >js教程 >使用'navigator.appName”和'navigator.appVersion”檢測舊版 IE 版本可靠嗎?

使用'navigator.appName”和'navigator.appVersion”檢測舊版 IE 版本可靠嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-06 14:54:02900瀏覽

Is Using `navigator.appName` and `navigator.appVersion` Reliable for Detecting Older IE Versions?

在JavaScript 中偵測IE 版本(v9 之前的版本)

偵測標準與建議程式碼

為了確定使用者是否使用v9 之前的Internet Explorer 版本存取網站,建議的程式碼利用navigator.appName 和navigator.appVersion 屬性。
if (navigator.appName.indexOf("Internet Explorer") != -1) {
    // User is using IE
    // Check for IE version < 9
}

此程式碼可以嗎

儘管解決了有關用戶代理字串欺騙和功能支援檢測的問題,但提議的程式碼仍有一些限制:
  • 條件語句:
  • 雖然條件語句對於針對不同的IE 版本很有用,但它們僅在IE5-9 中受支持,因此這種方法在現代瀏覽器中已過時。
  • 精確度(IE 1 和 IE 10 ):
  • 程式碼無法偵測 IE 1 和大於或等於 10 的 IE 版本。
  • 完整性:
  • 程式碼僅檢查小於 9 的 IE 版本,忽略潛在的邊緣情況。

首選替代方案

要克服這些限制,更全面的方法涉及使用CSS 基於類別的偵測:
  1. 定義代表不同IE 版本的CSS 類,例如:
html.lt-ie9 { ... }
html.lt-ie8 { ... }
html.lt-ie7 { ... }
  1. 將這些類別應用到 中。基於偵測到的IE 版本的元素:
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
  1. 使用CSS 指定特定於偵測到的IE 版本的樣式,或基於指定的類別實作JavaScript 邏輯:
if ($('html').is('.lt-ie7, .lt-ie8, .lt-ie9')) {
    // IE version < 9
} else {
    // Other browsers
}

此方法為處理不同的瀏覽器版本提供了更大的靈活性、相容性和控制力。

以上是使用'navigator.appName”和'navigator.appVersion”檢測舊版 IE 版本可靠嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn