クライアントブラウザによって異なるCSSファイルをロードする
Firefoxブラウザで開くと、WebページのHTMLコードには次のようなものがあります.
Google Chromeブラウザで開くと、
もし、あなたがIEブラウザまたはIEカーネルのブラウザを使用するならば、classは変更します:class=“IE”.
ブラウザタイプを判断するには,サーバ側プログラムで判断してもよいし,クライアントスクリプトで判断してもよい.
次のサーバ側の判断方法は、
次に、クライアントがブラウザのタイプを判断します.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="FF">
Google Chromeブラウザで開くと、
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="Chrome">
もし、あなたがIEブラウザまたはIEカーネルのブラウザを使用するならば、classは変更します:class=“IE”.
ブラウザタイプを判断するには,サーバ側プログラムで判断してもよいし,クライアントスクリプトで判断してもよい.
次のサーバ側の判断方法は、
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="<%= this.BrowserClass %>">
<head runat="server">
public string BrowserClass
{
get
{
return GetBrowser(HttpContext.Current.Request.Browser);
}
}
/// <summary>
///
/// </summary>
private string GetBrowser(HttpBrowserCapabilities browser)
{
if (browser == null)
{
return "IE";
}
if (browser.Browser.IndexOf("Firefox", StringComparison.CurrentCultureIgnoreCase) != -1)
{
return "FF";
}
else if (browser.Browser.IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) != -1)
{
return "SF";
}
else if (browser.Browser.IndexOf("Opera", StringComparison.CurrentCultureIgnoreCase) != -1)
{
return "OE";
}
else if (browser.Browser.IndexOf("Chrome", StringComparison.CurrentCultureIgnoreCase) != -1)
{
return "Chrome";
}
else
{
return "IE";
}
}
次に、クライアントがブラウザのタイプを判断します.
<script type="text/javascript">
function myBrowser() {
var userAgent = navigator.userAgent; // userAgent
var isOpera = userAgent.indexOf("Opera") > -1; // Opera
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; // IE
var isFF = userAgent.indexOf("Firefox") > -1; // Firefox
var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") < 1; // Safari
var isChrome = userAgent.indexOf("Chrome") > -1; // Chrome
if (isIE) {
var IE5 = IE55 = IE6 = IE7 = IE8 = false;
var reIE = new RegExp("MSIE (//d+//.//d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
IE55 = fIEVersion == 5.5;
IE6 = fIEVersion == 6.0;
IE7 = fIEVersion == 7.0;
IE8 = fIEVersion == 8.0;
if (IE55) { return "IE55"; }
if (IE6) { return "IE6"; }
if (IE7) { return "IE7"; }
if (IE8) { return "IE8"; }
}
if (isFF) { return "FF"; }
if (isOpera) { return "Opera"; }
if (isSafari) { return "Safari"; }
if (isChrome) { return "Chrome"; }
}
</script>