Rumah  >  Artikel  >  hujung hadapan web  >  Adakah Menggunakan `navigator.appName` dan `navigator.appVersion` Boleh Dipercayai untuk Mengesan Versi IE Lama?

Adakah Menggunakan `navigator.appName` dan `navigator.appVersion` Boleh Dipercayai untuk Mengesan Versi IE Lama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 14:54:02826semak imbas

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

Kesan Versi IE (Sebelum v9) dalam JavaScript

Kriteria Pengesanan dan Kod Cadangan

Untuk menentukan sama ada pengguna mengakses tapak web menggunakan versi Internet Explorer sebelum v9, kod yang dicadangkan itu memanfaatkan sifat navigator.appName dan navigator.appVersion.

if (navigator.appName.indexOf("Internet Explorer") != -1) {
    // User is using IE
    // Check for IE version < 9
}

Adakah Kod Ini Berlaku Trick?

Walaupun menangani kebimbangan yang dibangkitkan tentang spoofing rentetan ejen pengguna dan pengesanan sokongan ciri, kod yang dicadangkan mempunyai beberapa had:

  • Pernyataan bersyarat: Walaupun pernyataan bersyarat berguna untuk menyasarkan versi IE yang berbeza, ia hanya disokong dalam IE5-9, jadi pendekatan ini sudah lapuk dalam penyemak imbas moden.
  • Ketepatan (IE 1 dan IE 10 ): Kod gagal mengesan versi IE 1 dan IE yang lebih besar daripada atau sama dengan 10.
  • Kelengkapan: Kod hanya menyemak versi IE kurang daripada 9, mengabaikan kemungkinan kes tepi.

Alternatif Pilihan

Untuk mengatasi batasan ini, pendekatan yang lebih komprehensif melibatkan penggunaan pengesanan berasaskan kelas CSS:

  1. Tentukan Kelas CSS yang mewakili versi IE yang berbeza, cth.:
html.lt-ie9 { ... }
html.lt-ie8 { ... }
html.lt-ie7 { ... }
  1. Gunakan kelas ini pada elemen berdasarkan versi IE yang dikesan:
    <!--[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. Gunakan CSS untuk menentukan gaya khusus untuk versi IE yang dikesan, atau laksanakan logik JavaScript berdasarkan kelas yang ditetapkan:
    if ($('html').is('.lt-ie7, .lt-ie8, .lt-ie9')) {
        // IE version < 9
    } else {
        // Other browsers
    }

    Kaedah ini memberikan lebih fleksibiliti, keserasian dan kawalan untuk mengendalikan versi penyemak imbas yang berbeza.

    Atas ialah kandungan terperinci Adakah Menggunakan `navigator.appName` dan `navigator.appVersion` Boleh Dipercayai untuk Mengesan Versi IE Lama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn