有时在我的.jsp中,我使用User-Agent来定义依赖客户端浏览器使用的.css类或属性。用户代理在.jsp中的替代
例如:
<c:set var="browser" value="${header['User-Agent']}" scope="session"/>
<c:if test="${(fn:contains(browser,'Safari'))||(fn:contains(browser,'Chrome'))}">
<c:set var="cellClass" value="cell-nonFF"/>
</c:if>
<c:if test="${(fn:contains(browser,'Safri') == false)&&(fn:contains(browser,'MSIE') == false)}">
<c:set var="cellClass" value="cell-FF"/>
</c:if>
<c:if test="${fn:contains(browser,'MSIE')}">
<c:set var="cellClass" value="cell-IE"/>
</c:if>
条件句的有效期仅为IE,所以对于各种浏览器,我应该定义用户代理这样的方式。
那样的工作现在确定。 但我想有另一种更优雅或稳定的方式,因为每个浏览器的用户代理定义非常复杂,我们计划进一步支持移动浏览器。
的Safari 4检测为:Mozilla的/ 5.0(视窗; U; Windows NT的5.1;恩-US)为AppleWebKit/528.16(KHTML,例如Gecko)版本/ 4.0的Safari/528.16
IE 6检测为:: Mozilla/4.0(兼容; MSIE 6.0; Windows NT 5.1; SV1; iOpus-IM; Mozilla/4.0(兼容; MSIE 6.0; Windows NT 5.1; SV1); InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
是更稳定的替代方案吗?