ユーザーエージェントでブラウザの判別をするPHPとかjQueryを書いてみた。

自分でコピペできるように、browser判別のTipsを貼っておきます。

PHPで判別

[php]
function browser_class(){
$classes = "";
$agent = getenv( "HTTP_USER_AGENT" );

if(strstr($agent,"MSIE")){
$classes .= "msie ";
if(strstr($agent,"MSIE 6.0")) $classes .= "ie6 lt7 lt8 lt9";
if(strstr($agent,"MSIE 7.0")) $classes .= "gt6 ie7 lt8 lt9";
if(strstr($agent,"MSIE 8.0")) $classes .= "gt6 gt7 ie8 lt9";
if(strstr($agent,"MSIE 9.0")) $classes .= "gt6 gt7 gt8 ie9";
}
else {
$classes .= "noie ";
if( strstr($agent,"Firefox")) {
$classes .= "firefox gecko";
}
elseif( strstr($agent,"Safari")) {
$classes .= "safari webkit";
}
elseif( strstr($agent,"Chrome")) {
$classes .= "Chrome webkit";
}
elseif( strstr($agent,"Opera")) {
$classes .= "opera presto";
}
//ここからは気休め。
//AppleWebKit/534.30 (KHTML, like Gecko) なので先に記述
elseif( stristr($agent,"WebKit")) {
$classes .= "webkit";
}
//AppleWebKit/534.30 (KHTML, like Gecko) なので先に記述
elseif( stristr($agent,"KHTML")) {
$classes .= "khtml";
}
elseif(stristr($agent,"Gecko")) {
$classes .= "gecko";
}else {
$classes .= "other";
}
}
return $classes;
}
[/php]

ついでにwordpressのbody_classに追加するなら、
[php]
function add_browser_class($classes){
$classArr = explode(" ",browser_class());
$return = array_merge($classes,$classArr);
return $return
}

add_filter("body_class","add_browser_class");
[/php]

とかやればうまく行ける気がします。

jQueryで判別

参考:
jQuery.supportでのブラウザ判別
http://w3g.jp/blog/tools/jquery_browser_sniffing

[js]
jQuery(function($){

$html = $("html");

if(!$.support.checkOn && $.support.checkClone){
$html.addClass("webkit noie");
}else if($.support.checkOn && $.support.noCloneEvent && window.globalStorage){
$html.addClass("firefox noie");
}else if($.support.checkOn && $.support.noCloneEvente && !window.globalStorage){
$html.addClass("opera noie");
}else if(!$.support.noCloneEvent && $.support.opacity){
$html.addClass("gt6 gt7 gt8 ie9 msie");
}else if(!$.support.opacity){
if(!$.support.style){
if (typeof document.documentElement.style.maxHeight != "undefined") {
$html.addClass("gt6 ie7 lt8 lt9 msie");
} else {
$html.addClass("ie6 lt7 lt8 lt9 msie");
}
}else{
$html.addClass("gt6 gt7 ie8 lt9 msie");
}
}else{
$html.addClass("other");
}
});
[/js]