SORU
9 HAZİRAN 2012, CUMARTESİ


IE sürümü (9) önce Javascript tespit

Eğer 9 önce Internet Explorer sürümü kullanıyorlar eğer bir hata sayfası için web sitemizin kullanıcıları, konuşmak istiyorum. Sadece bizim zaman ve para değer YANİ pre-9 destek için değil. Tüm diğer kullanıcıları non-IE tarayıcıları ince ve karşılıksız olmamalı. Burada önerdiği kodu:

if(navigator.appName.indexOf("Internet Explorer")!=-1){     //yeah, he's using IE
    var badBrowser=(
        navigator.appVersion.indexOf("MSIE 9")==-1 &&   //v9 is ok
        navigator.appVersion.indexOf("MSIE 1")==-1  //v10, 11, 12, etc. is fine too
    );

    if(badBrowser){
        // navigate to error page
    }
}

Bu kod işini görür mü?

Muhtemelen bana gelecek olan bir iki yorum kapalı kafa:

[1] Evet, ben kullanıcıların dize kendi useragent. forge biliyorum Endişeli değilim.

[2] Evet, programlama artıları tarayıcı tipi yerine özelliği-destek arıyor tercih ettiğini biliyorum ama bu yaklaşım, bu durumda mantıklı hissetmiyorum. Ben zaten (ilgili) non-IE tarayıcıları tüm ihtiyacım olan ve pre-9 Tüm IE tarayıcılarda yok bu özellikleri destekleyen. Site genelinde özellik ile kontrol özelliği tamamen vakit kaybı olur.

[3] Evet, ben birinin sitesini IE v1 kullanarak (veya >erişmeye çalışıyor biliyor = 20) '' true ve uyarı sayfasını düzgün. görüntülenen olmaz badBrowser olmazdı Bu göze almak zorunda olduğumuz bir risk.

[4] Evet, ben Microsoft "hassas tarayıcı sürüm algılama kullanılabilir." koşullu yorumlar olduğunu biliyor YANİ artık 10, Bu yaklaşım kesinlikle yararsız IE gibi koşullu yorumlar destekler.

Haberdar olmak için başka bir bariz sorunlar? Teşekkürler.

CEVAP
9 HAZİRAN 2012, CUMARTESİ


Bu işin benim tercih edilen yoldur. Maksimum kontrol sağlar:

İlk ıe sınıfları doğru şekilde ayarlanmış

<!doctype html>
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
<head>

Ve bazı basit komut dosyası ekleyin:

(function ($) {
    "use strict";

    // Detecting IE
    var oldIE;
    if ($('html').is('.ie6, .ie7, .ie8')) {
        oldIE = true;
    }

    if (oldIE) {
        // Here's your JS for IE..
    } else {
        // ..And here's the full-fat code for everyone else
    }

}(jQuery));

Paul Irish için teşekkürler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • isupportthegosselins

    isupporttheg

    6 Aralık 2009
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011