position:fixed の欠如を回避するには、IE6 を検出する必要があります。私は単純な正規表現を使用しています:
var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
これは、ブラウザーが IE6 と IE7 の両方であると主張するユーザーを除いて、ほぼ常に機能します。
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30)
栄光。
jquery.supportを使用したいのですが、それは position:fixed が利用可能かどうかのクエリをサポートしていないようです。それで、IE6の検出に戻りました。
maxHeight の存在を探すなど、さまざまな解決策が提案されています。しかし、それらはかなりランダムに見えて私を怖がらせます - 上記の正規表現に例外がある場合、maxHeight に例外がないことをどのように確認できますか?
私は条件付きコメントを使用することを考えています-そうすれば、少なくともハックではなく、IE6であると主張するIE自体になります。何かのようなもの:
<!--[if IE 6]>
<SCRIPT> var isIE6 = true; </SCRIPT>
<![endif]-->
または、 position:fixed が利用可能かどうかを直接テストする関数もありますが、少し重いようです。
条件付きコメント アプローチが機能しない理由はありますか? より良いアプローチはありますか?