This content has been marked as final.
Show 3 replies
-
1. Re: Determine users browser (firefox, ie, etc) and assign to variable
damianharvey.damianharvey.gmail.com Mar 30, 2010 6:50 AM (in response to bsgcic)You may find this useful:
String userAgent = FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap().get("user-agent");
Cheers,
D.
-
2. Re: Determine users browser (firefox, ie, etc) and assign to variable
bsgcic Mar 30, 2010 6:55 AM (in response to bsgcic)Damian,
Thank you very kindly!!
Jeff
-
3. Re: Determine users browser (firefox, ie, etc) and assign to variable
bsgcic Mar 30, 2010 7:47 AM (in response to bsgcic)I finally got this working and thus I thought I would post the code. This solution is based on Damian's comment above and on the work by Faisal Khan in his posting at link.
//$Id: DetectBrowser.java 2010-03-30 12:52:00 $ package com.mysite.util; import java.io.Serializable; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.Startup; import org.jboss.seam.annotations.web.RequestParameter; @Name("detectBrowser") @Scope(ScopeType.SESSION) @Startup public class DetectBrowser implements Serializable //Definition Begin { /** * */ private static final long serialVersionUID = -108298423454361891327L; public DetectBrowser() {}; private HttpServletRequest request = null; //Note 20100330: I believe that I can also use the @RequestParameter annotation as well. //@RequestParameter("userAgent") //private String userAgent = null; //private String userAgent; private String userAgent = FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap().get("user-agent"); private boolean isNetEnabled = false; private boolean isIE = false; private boolean isFirefox = false; private boolean isNS6 = false; private boolean isNS4 = false; private String cssPostfix = null; private final String cssPostfix_IE = ""; private final String cssPostfix_Firefox = "_FF"; @Create public void create() { this.setUserAgentAttributes(); } //public void create() public void setRequest(HttpServletRequest request) { this.request = request; String userAgent = this.request.getHeader("User-Agent"); this.setUserAgent(userAgent); } //public void setRequest(HttpServletRequest req) public void setUserAgent(String userAgent) { this.userAgent = userAgent; } //public void setUserAgent(String userAgent) public void setUserAgentAttributes() { String userAgentCheck = this.userAgent.toLowerCase(); if (userAgentCheck.indexOf("msie") != -1) { this.isIE = true; this.cssPostfix = this.cssPostfix_IE; } //if (userAgentCheck.indexOf("msie") != -1) else if(userAgentCheck.indexOf("firefox") != -1) { this.isFirefox = true; this.cssPostfix = this.cssPostfix_Firefox; } //else if(userAgentCheck.indexOf("netscape6") != -1) else if(userAgentCheck.indexOf("netscape6") != -1) { this.isNS6 = true; this.cssPostfix = this.cssPostfix_Firefox; } //else if(userAgentCheck.indexOf("netscape6") != -1) else if(userAgentCheck.indexOf("mozilla") != -1) { this.isNS4 = true; this.cssPostfix = this.cssPostfix_Firefox; } //else if(userAgentCheck.indexOf("mozilla") != -1) else //Not (if (userAgentCheck.indexOf("msie") != -1)) { this.cssPostfix = this.cssPostfix_Firefox; } //else //Not (if (userAgentCheck.indexOf("msie") != -1)) if(userAgentCheck.indexOf(".net clr") != -1) this.isNetEnabled = true; } //public void setUserAgentAttributes() public String getUseragent() { return userAgent; } public boolean isNetEnabled() { return isNetEnabled; } public boolean isIE() { return isIE; } public boolean isFirefox() { return isFirefox; } public boolean isNS6() { return isNS6; } public boolean isNS4() { return isNS4; } public String getCssPostfix() { return cssPostfix; } public void setCssPostfix(String cssPostfix) { this.cssPostfix = cssPostfix; } } //public class DetectBrowser implements Serializable //Definition Begin
And then in the xhtml code:
<div class="beginningOfClassName#{detectBrowser.cssPostfix}">
Jeff