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

Mary-Kate Olsen
Lepaskan: 2024-11-06 14:54:02
asal
825 orang telah melayarinya

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
}
Salin selepas log masuk

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 { ... }
Salin selepas log masuk
  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]-->
    Salin selepas log masuk
    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
    }
    Salin selepas log masuk

    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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!