コーディングする際、最近は、ブラウザ依存も少なくなってきたんで、ハックなんてしなくても、大体はカバーできちゃうんですが、
ひと昔前(IE6なんかが主流のころ)は、IEハック・FireFoxハック・Safariハックなんかが、それぞれ存在して、まだ、Operaハックなんてものあって、いっぱいっぱいになってました。
CSS3やHTML5が出てきて、便利になったなーと実感してます。
最近、ハックなんて使うことも減少していたんですが、これまた、iPadからのプリントCSSって案件が出てきたので、
ユーザーエージェントでハック的なことをやってしまおうと思ったわけです。
ついでに、よくあるwindow.navigator.userAgentを使って、パソコン&タブレット&スマホを判断し、
それに、よくあるwindow.navigator.appVersionを組み合わせて、ブラウザバージョンまでをカバーするようなコードを作っておきました。
☆実際のサイトがコレ
http://www2.panasonic.biz/ls/air/pac/navi/※アクセス数を上げる課題もあるので、ページを一度でも踏んでいただけるとありがたいです。
まずは、<head>内にjQueryを記述してくださいね。
※サイトでは、Ver 1.11.1を使ってますが、Ver2系/Ver3系でも動くと思います。(試してないですが)
<script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script>
次に、外部ファイルでもいいので、以下のソースを記述。
▼JavaScript
$(document).ready(function () { var userAgent = window.navigator.userAgent.toLowerCase(); var appVersion = window.navigator.appVersion.toLowerCase(); if (userAgent.indexOf('msie') != -1) { $("body").addClass("ie"); if (appVersion.indexOf('msie 6.') != -1) { $('body').attr('id', 'ie6'); } else if (appVersion.indexOf('msie 7.') != -1) { $('body').attr('id', 'ie7'); } else if (appVersion.indexOf('msie 8.') != -1) { $('body').attr('id', 'ie8'); } else if (appVersion.indexOf('msie 9.') != -1) { $('body').attr('id', 'ie9'); } else if (appVersion.indexOf('msie 10.') != -1) { $('body').attr('id', 'ie10'); } } else if (userAgent.indexOf('trident/7') != -1) { $('body').attr('id', 'ie11'); } else if (userAgent.indexOf('chrome') != -1) { $('body').attr('id', 'chrome'); } else if (userAgent.indexOf('iphone') != -1) { $('body').attr('id', 'tablet'); } else if (userAgent.indexOf('ipad') != -1) { $('body').attr('id', 'tablet'); } else if (userAgent.indexOf('ipod') != -1) { $('body').attr('id', 'tablet'); } else if (userAgent.indexOf('safari') != -1) { $('body').attr('id', 'safari'); } else if (userAgent.indexOf('gecko') != -1) { $('body').attr('id', 'firefox'); } else if (userAgent.indexOf('opera') != -1) { $('body').attr('id', 'opera'); } else if (userAgent.indexOf('android') != -1) { $('body').attr('id', 'tablet'); } else if (userAgent.indexOf('mobile') != -1) { $('body').attr('id', 'tablet'); } });
ちょっと前までは、会社で上司と「jQuery か prototype のどっちでいきましょう?」「共存ってどうやるんでしたっけ?」みたいな会話をしてたのになぁ。。。時代は変わりましたね。
デモサイトは、こちら