2012-01-15 26 views
1

私はjQueryを使ってIE7のための条件文を追加しようとしましたが、それは、それが働いていたハードコードされた場合、それは(動的に動作しませんので、私はこれは、jQueryの条件文の実際の「コメント」を付加されている方法に関連している知っています)。jQueryでIEの条件文(コメント)を挿入しますか?

私が使用しているコードはこれです:

$("head").append("<!--[if IE 7]>"); 
$("head").append("<link>"); 
css = $("head").children(":last"); 
    css.attr({ 
    rel: "stylesheet", 
    type: "text/css", 
    href: "css/IE7.css" 
}); 
$("head").append("<![endif]-->"); 

私の考えは多分、これらがどのように?URLエンコードする必要があり、これは<>に関連しているということでしょうか?

誰もがjQueryを使って、各CSSプロパティをターゲットに関与しないこと、このためのソリューションを持っている(そこにCSSの修正の数十があるので、それは解決されません)。あなたは、ブラウザのバージョンを確認し、それに応じて行動する$.browserを使用することができ

+1

条件付きコメントは、解析時間*のものです。 jQueryコードが実行されるまでに、ページはすでに解析されているため、その段階で条件付きコメントを考えるのは意味がありません。あなたがパンを焼いたときにパン生地をかき混ぜる方法を尋ねるようなものです。 :-) –

+0

@ T.J.Crowder説明のおかげで、私はそれが一般的な方法で解析されないことを認識していないことを条件文のコメントにすることに焦点を合わせました。 – jackJoe

答えて

4

if ($.browser.msie && parseInt($.browser.version, 10) === 7) { 
    $('head').append('<link>', { 
     rel: 'stylesheet', 
     type: 'text/css', 
     href: 'css/IE7.css' 
    }); 
} 
+1

@jackJoe:ブラウザの特定のバージョン*については気にしないでください。むしろ、心配(とテスト)*機能*:http://kangax.github.com/cft/しかしダーリンは、あなたが実際に尋ねたものと同等のことをする方法を示しています。 –

+0

それは良いアイデアであり、私の問題を解決しますが、私はそれについても考えませんでした。ご協力いただきありがとうございます。 – jackJoe

0

私はConditionizrを選ぶだろう、それは、スタンドアロンAPIとしてあなたのためのすべてのこれを行い、jQueryのよりも信頼性が高いです。http://conditionizr.com

関連する問題