2011-07-22 9 views
0

何らかの理由で、IEはこのスクリプト( 'else'部分)を実行しません。私はほとんどすべてを試みましたが、私はそれを動作させることはできません。すべてのIEバージョンでJavascriptが動作しません..ブラウザ検出機能付きスクリプト

$(document).ready(function(){ 
    if (navigator.appName != "Microsoft Internet Explorer") { 
     $(".f-top").corner("round 10px"); 
     $(".s-top").corner("round 10px"); 
    } 
    else { 
     $('.f-top').css('background-image', 'url(../images/block-bg.png)'); 
    } 
}); 
+0

どのJSライブラリを使用していますか?すなわちJQuery、Prototypeなど –

+0

@Barry - jQueryのように見えます。 – Oded

+0

@Barry:2つのうち、プロトタイプではなく、jQueryにする必要があります。プロトタイプの "select many"関数は '$'ではなく '$$'です。 (プロトタイプは 'css'ではなく' setStyle'になります)もちろん、どちらでもないかもしれません。 –

答えて

0

は直接あなたの質問に答えていない、しかし、あなたはあなたの要素に角丸にハックするjQueryのを使用しようとしているように見えます。

にはにJQueryを使用する必要があります。あなたの解決策よりも優れたプラグインが既にたくさんあります。 http://www.jqueryplugins.com/plugin/61/

しかし、率直に言って、IE(すべてのバージョン)で角を丸めるのに最適な方法は、JQueryの使用を忘れて、CSS3Pieを代わりに使用することです。

CSS3Pieは、IEスタイルの小さなハックで、標準のborder-radius CSSプロパティ(他のすべてのブラウザでは既に動作しています)でIEを動作させます。

#myElement { 
    -webkit-border-radius: 10px; 
    -moz-border-radius: 10px; 
    border-radius: 10px; 
    behavior: url(PIE.htc); 
} 

非常に簡単で、うまく機能、そしてあなたはすべてのブラウザのための標準的なCSSを使用することができます:

だから、あなたが丸みを帯びた角を持っている必要があるのは、以下のCSSです。

詳細については、CSS3PieのWebサイトの例とドキュメントを参照してください。

+0

素晴らしい!以前はこれを知らなかったが、これは今まで私にとって最高の解決策だった。 – jroeleveld

3

私はあなたのjQueryを使用していると仮定しています - ...もしそうなら

用途:

!$.browser.msie 

の代わりに:

navigator.appName != "Microsoft Internet Explorer" 
2

あなたはjQueryのを使用している場合は、その理由あなたは以下を使用しないでください?

if ($.browser.msie) { 
    // do your thing if browser is Internet Explorer 
} 
else { 
    // do your thing if browser is not Internet Explorer 
} 
関連する問題