크로스 브 라 우 저 호환성 문제 해결

클 라 이언 트 브 라 우 저 와 서버 가 상호작용 을 할 때 버 전 정 보 는 http - header 에 있 습 니 다. 그 중의 user - agent 필드 를 추출 하여 서로 다른 CSS 파일 로 돌아 가 문 제 를 해결 합 니 다.
다음은 자바 의 코드 를 첨부 합 니 다. 다른 언어 는 이와 유사 합 니 다.
Rails   request.env["HTTP_USER_AGENT"]
PHP     $_SERVER["HTTP_USER_AGENT"];
ASP     Request.ServerVariables("http_user_agent");

package com.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

/**
 *          UserAgent
 * @author Snow
 * */
public class UserAgentAnalyzer {
	
	/**
	 *          IE  ,
	 *            -1
	 * */
	public static int getUserAgent(HttpServletRequest request)
	{
	 	String userAgent = request.getHeader("user-agent");  
		String regExp = ".*MSIE (\\d).*";

		Pattern p = Pattern.compile(regExp);
		Matcher m = p.matcher(userAgent);
		String field = "";
		boolean b = m.matches();//     IE      

		if(b)
		{
			int version = -1;
			try
			{
				field = m.group(1);
				version = Integer.parseInt(field);	
				return version;
			}
			catch(Exception e)
			{
				return version;
			}
			
		}
		else
		{
	 		return -1;
		}
	}
}


JSP 페이지 에서

<%@ page import="com.util.UserAgentAnalyzer" %>


<html>
<body>
public css links<br>
<% 
int version = UserAgentAnalyzer.getUserAgent(request);
switch(version)
{
	case 6:
	%>
	ie6 css links
	<% 
	break;
	case 7:
	%>
	ie7 css links
	<% 
	break;	
	case 8:
	%>
	ie8 css links
	<% 
	break;
	
	case -1:
	%>
	firefox css links
	<% 
	break;
}
%>
<br>
<%= "Version is "+ String.valueOf(version)%>

</body>
</html>

좋은 웹페이지 즐겨찾기