2012-01-13 17 views
0

私は助けてください..私はブラウザはIE8であれば実行するからコードブラウザがInternet Explorerの場合、JavaScriptコードが実行されないようにするにはどうすればよいですか?

if($("#opacity")){ 
      $("#opacity").css({ 
       opacity: 0.5 
      }); 
     } 

を避けたいいくつかのjavascriptのコード

var href = "demo.php"; 
    if(href) 
    { 
     if($("#opacity")){ 
      $("#opacity").css({ 
       opacity: 0.5 
      }); 
     } 
     if (document.getElementById("layer")) { 
      var ele = document.getElementById("layer"); 
      ele.style.display = "block"; 
     } 
    } 

を持っています。 。 。

+0

IE8またはIEのすべてのバージョンでですか? – Canastro

答えて

0

document.all(IEの場合のみ)をチェックしてください。しかし、これは一般的には悪い考えです。代わりにスタイルをクラスに移動する必要があります(IEで不透明度をシミュレートするためのフィルタを使用します)。JSコードからそれらのクラスを設定するだけです。また、あなたは条件付きであなたが訪問者のブラウザ上のすべての情報が含まれナビゲーターオブジェクトを使用sould

if(!document.all) { 
    if($("#opacity")){ 
     $("#opacity").css({ opacity: 0.5 }); 
    } 
} 
0

使用jQueryの$.browserオブジェクト::

if (!($.browser.msie && $.browser.version.substr(0,1) == 8)) { 
    // this code will not execute on IE 8 but will run on other IE versions 
} 

http://api.jquery.com/jQuery.browser/

2

あなたはjQuery.browserを使用することができます

<div id="example"></div> 

<script type="text/javascript"> 

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>"; 
txt+= "<p>Browser Name: " + navigator.appName + "</p>"; 
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>"; 
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>"; 
txt+= "<p>Platform: " + navigator.platform + "</p>"; 
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>"; 

document.getElementById("example").innerHTML=txt; 

</script> 

このコードは、上の例だった:

はnavigatorオブジェクトをテストするには、Detecにブラウザweither IE8ですが、それは悪い習慣と考えられていますT:

if ($.browser.msie && $.browser.version.substr(0,1) == 8)) { 
    // ... 
} 

この代わりに、あなたはopacityか使用できるかどうかを教えてくれますjQuery.support、使用する必要があります。

不透明度をブラウザが不透明スタイルのプロパティを正しく解釈できる場合はtrueになります。 (IEでは現在falseですが、代わりにアルファフィルタが使用されます)。 CSS3仕様

if (!$.support.opacity) { 
    // ... 
} 
+0

ブラウザエージェントのチェックではなく、機能の検出に+1します。 –

0
if(href){ 
    if(!($.browser.msie && $.browser.version == "8.0")){ 
     if($("#opacity")){ 
      $("#opacity").css({ 
       opacity: 0.5 
      }); 
     } 
    } 
    if (document.getElementById("layer")) { 
     var ele = document.getElementById("layer"); 
     ele.style.display = "block"; 
    } 
} 
0

はjQueryの$の.browserはこのちょうど罰金を行う必要がありますが、ここではIE8場合は、別の解決策は、真

function isie() { 
    var ie = false, 
     version = 100; 
    if (navigator.appVersion.indexOf("MSIE") != -1) var version = parseFloat(navigator.appVersion.split("MSIE")[1]);if (version == 8) {var ie = true} return ie; 
} 

戻ります。

また、jQueryのcssの不透明度は正規化されており、IE8では正常に動作するはずです。

関連する問題