質問: macfirefox3とmacfirefox2以下でcssを切り替えたい macのfirefox3は、firefox2までとはデフォルトフォントサイズが 違うので、firefox3とそれ以外のfirefoxで分けたいです。 今まで、cssを以下のスクリプトでブラウザ別に分岐していました。 macのfirefox3の分岐を増やしてみたのですが、それ以外のfirefoxのcssに 分岐されてしまいます。 あまりjavascriptに明るくないので、 どうしてわかれてくれないものか困っています。 どうぞお知恵をお貸し下さい! ↓以下、かいてみたソースです。 var win=(navigator.useragent.indexof("win")!=-1); var mac=(navigator.useragent.indexof("mac")!=-1); var explorer=(navigator.appname.indexof("explorer")!=-1); var firefox=(navigator.useragent.indexof("firefox") !=-1); var netscape=(navigator.appname.indexof("netscape")!=-1); var opera=(navigator.useragent.indexof("opera")!=-1); var safari=(navigator.useragent.indexof("safari")!=-1); var version=navigator.appversion.charat(0); if(safari){ document.write(''); } else if(win && explorer && version=="6"){ document.write(''); } else if(win && firefox){ document.write(''); } else if(win && opera){ document.write(''); } /*増やしたところ*/ else if(mac && firefox && version=="3"){ document.write(''); }/*増やしたところ終わり*/ else if(mac && firefox){ document.write(''); } else if(mac && opera){ document.write(''); } else if(win && netscape && version=="4"){ document.write(''); } else if(mac && explorer && version=="5"){ document.write(''); } else if(mac && netscape && version=="7"){ document.write(''); } else if(mac && netscape && version=="4"){ document.write(''); } else{ document.write(''); }
回答: こんにちは。 直接的な答えと致しましては・・・ firefoxのバージョンの区別は navigator.appversion ではなく navigator.useragent で行います。 navigator.useragent.indexof("rv:1.9")!=-1 // firefox 3 で true navigator.useragent.indexof("rv:1.8.1")!=-1 // firefox 2 で true で区別できます。 参考urlをご覧になるとおわかりになると思いますが、navigator.appversion では区別がつきません。 間接的な答えと致しましては・・・ 全ての場合を過不足無く区別するコードを書くのはかなり大変です。prototype や jquery といったライブラリを使用することを検討なさるのがよいかと思います。 # さらに間接的な答えと致しましては・・・ # おせっかいは承知なのですが、フォントサイズは変更して使われている方も多いのでは?(私もそうです) # ブラウザで分けたところで、どこまで実効性があるのでしょう・・・ 参考url:http://www.openspc2.org/useragent/