2010-12-16 7 views
13

jQuery関数でif文を使用してIE7をターゲットにしようとしています。この特定のビットへの私のコードは:jQueryを使用したターゲットIE7

if($.browser.msie && $.browser.version.substring(0) == "7") { 
    //Do something 
} 

これは正しいですか?

+4

テストしましたか? – Domenic

+0

あなたはおそらく何かをする "正しい"方法を探していますか?そうでない場合は、コードをテストし、それが機能するかどうかを確認してください。 – gideon

+0

私は 'parseInt($。browser.version)== 7'と思う方がきれいでしょう。 – karim79

答えて

37

試してみてください。

if($.browser.msie && parseInt($.browser.version, 10) == 7) { 
    //Do something 
} 

そして@Andrewウィテカーのコメントとしては、代わりに特定のブラウザを標的とする、代わりの特徴を検出することを検討してください。

+0

その声明に同意します。 jquery apisでも次のように述べています。「このプロパティを使用しないことをおすすめします。機能の検出を代わりに使用してください。」 (http://api.jquery.com/jQuery.browser/) – Tjirp

+4

@Tjirp、私は「IE7がオーバーフロー上のコンテンツウィンドウ内のスクロールバーを描画するために、IE8は外それらを描く「機能」を検出する方法があるとは思いません" – CaffGeek

+0

ニースのスクリプト、upvote。しかし、もし私がIE7とIE8をターゲットにしたいのであれば?私は 'if($。browser.msie && parseInt($。browser.version、10)== 7,8)'でテストして動作します。しかし、私のJSLintはエラーがあると私に伝えます。私はJavaScriptの達人ではないので、エラーの意味を理解していません。私の考えはDYRにあるので、2つの異なるブラウザで同じ機能を繰り返す必要はありません。どのようにこれを達成するためのアイデア?ありがとう。 –

関連する問題