2009-06-02 14 views
1

それぞれのブラウザに基づいて値を変更する必要があります。jQuery 1.3以上でIE8、IE7、Safari、FireFoxを検出しますか?

if (navigator.appName == 'Netscape'){ 
     top = 17; 
} 

これは働いていたが、残念ながら、FirefoxとSafariの両方は、これらすべてを検出するために、「ネットスケープ」

がどのように使用するjQueryの1.3.2と表示さ? jquery.browserがなくなったので、jquery.supportの下に情報が見つかりませんでした。

ありがとうございます!

答えて

2

どのようにレンダリングされていますか?ブラウザの盗聴ではなくcapability detectionを使用できる方法はありますか?新しいブラウザが登場したときに破損しにくく、フリンジにもっと寛容です。

+1

能力の検出が私を助けなかったいくつかの変わったケースがありました。 1つはOperaにあった。キャンバスの描画にバグがあり、バグが修正されるまでflotの塗りつぶされたグラフが正しくレンダリングされなかった。私はOperaをチェックするよりも何か良いことを考えることができず、バグが修正されたバージョンを確認します。古いバージョンのOperaでは、私は不満足なチャートを描きましたが、それはあまり面白かったですが、少なくともバグはありませんでした。 – Nosredna

+1

@Nosredna機能の検出は、万能薬ではありません**。クロスブラウザスクリプティングには、より合理的なアプローチです。問題は、フィーチャーの検出が実際に足を踏み入れるのと同じくらい些細な(またはほんのわずかに複雑な)実装である場合に、ブラウザのスニッフィングを使用することです。明らかに、検出が無力である(例えば、純粋に視覚的矛盾)場合がある。このアイデアは、ブラウザの盗聴の信頼できない性質や脆弱な性質を理解し、注意してそれを適用し、盲目的にいくつかの規則に従わないことです。 – kangax

+0

ねえ、ダンに休憩を与える。 OPはWeb開発については全く知られておらず、どのような機能の検出がわからないことがあります。 –

0

これらはすべて、ツールヒントの先頭のCSS値を別の方法でレンダリングします。

var container = $('<div id="personPopupContainer">' 
    + '<div id="personPopupContent">' 
    + '</div>' 
    + '</div>'); 

var pos = $(this).offset(); 
var width = $(this).width(); 
var reposition = { left: (pos.left - width) + 'px', top: pos.top + msg + 'px' }; 

container.css({ 
        top: reposition.top 
      }); 
+0

あなたの質問に精緻化するのは、質問自体の編集として最善の方法です。しかし、実際に自分の質問に答えることはOKですが、答えを見つけ出すことができます。人々はあなたのためにこれを投票するかもしれません。しかし、私はここであなたが新しいと気づき、あなたの質問を編集するのに十分な信用がないかもしれません。あなたの質問の最後にあなたのアバターの左側に「編集」リンクがありますか? – Nosredna

+1

@ノスレッドナ、私はあなたの担当者がどれほど低いかにかかわらず、自分の投稿を編集できると思った? – alex

+0

私は最初の日に私に起こったと思った。多分私は何をしているのか分からなかったでしょう。:-) – Nosredna

4

a reset.css stylesheetを使用して、すべてのブラウザのデフォルトをゼロに設定していますか?そうでない場合は、あなたの現在の問題と潜在的な問題を解決する可能性があるので、そうすることをお勧めします。

すべてのブラウザをベースラインゼロに設定するので、パディングや配置を適用すると、すべてのブラウザで同じ効果が得られるはずです。

+1

reset.cssは悪いです –

+0

@Maxはなぜかを詳しく説明しますか?最近誰かが何らかの形でスタイルシートをリセットせずにサイトをデザインすることは稀です。 –

+0

私は同意します、なぜそれが悪いのかについての精緻化はすばらしいでしょう。 – kdawg

5

ブラウザの検出が必要な場合(警告が表示されているにもかかわらず)、ppk's routineは最新のものです(ChromeとiPhoneを使用している場合もあります)。

1

jQuery.browserオブジェクトを使用できます。 jQ 1.3では、jQuery.supportの方が推奨されていませんが、すぐに削除する予定はないので、安全です。

ブラウザスニッフィングを使用すると、非常に簡単で魅力的ですが、通常は操作を行う最良の方法ではありません。 CSSを多用しているブラウザでは問題があるように思えるので、jQuery.support.boxModelを見てください。

+0

jQuery.browserは私のChromeがSafariだと思っています。 ppkはよく分かっている。さらに別の方法として、ブラウザの検出が間違っている可能性があります。 :-) – Nosredna

関連する問題