• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Browser Version Detection
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Browser Version Detection


  • Subject: Re: Browser Version Detection
  • From: Max Muller <email@hidden>
  • Date: Fri, 5 Sep 2003 00:18:08 -0700

Hi,

Even better Tatsuya re-factored the code so now you have a full object ERXBrowser and a subclassable factory so you can provider your own ERXBrowser subclasses. Then you can do nifty stuff like:

condition = session.browser.rendersTablesFast;

or

condition = session.browser.supportsComplexDHTML;

or

condition = session.browser.isMac;

In the current implementation one checks out a browser object based on a user-agent string.

Regards,
	Max

On Wednesday, September 3, 2003, at 03:12 AM, David Teran wrote:

Hi,

this code should be available in project wonder now ;-)

cheers, David

On 03.09.2003, at 11:58, Jonathan Fleming wrote:

I've found some archived code that I've only slightly updated but it seems that when I'm using Netscape 3.0, 4.79 or 6.2 the browser version always reads out as version 5.0 or 5.5...
Can anyone tell me if I have something wrong in this class.
The validation of Internet Explorer seems to be fine however.


Here's the code:

import com.webobjects.foundation.*;
import com.webobjects.appserver.*;
import com.webobjects.eocontrol.*;
import com.webobjects.eoaccess.*;


public class BrowserDetector extends WOSession { protected boolean isIE; protected boolean isNetscape; protected boolean isICab; protected boolean isMac; protected boolean isWindows; protected boolean isLinux; protected boolean isVersion3; protected boolean isVersion4; protected boolean isVersion5; protected boolean isVersion6; protected boolean isVersion7; protected String plattform; protected String version; protected String browser; protected boolean browserVerOveride;


/* * constructor */ public BrowserDetector() { super(); } /*--------------------------------------------------*/

   public void awake() {
       super.awake();
       WORequest r = context().request();
       String userAgent = r.headerForKey("User-Agent");

       if (userAgent.indexOf("Mozilla")!=-1) {
           isNetscape=true;
           isICab=isIE=false;
           browser="Netscape";
       }
       if (userAgent.indexOf("iCab")!=-1) {
           isICab=true;
           isIE=isNetscape=false;
           browser="iCab";
       }
       if (userAgent.indexOf("MSIE")!=-1) {
           isIE=true;
           isICab=isNetscape=false;
           browser="MSIE";
       }

       if (userAgent.indexOf("Win")!=-1) {
           isMac=isLinux=false;
           isWindows=true;
           plattform="Windows";
       } else if (userAgent.indexOf("Mac")!=-1) {
           isWindows=isLinux=false;
           isMac=true;
           plattform="Mac";
       } else if (userAgent.indexOf("Linux")!=-1) {
           isWindows=isMac=false;
           isLinux=true;
           plattform="Linux";
       }

if (userAgent.indexOf("7.0")!=-1 || userAgent.indexOf("7.1")!=-1) {
isVersion6=isVersion5=isVersion4=isVersion3=false;
isVersion7=true;
version="7.0 or 7.1";
} else if (userAgent.indexOf("6.0")!=-1) {
isVersion5=isVersion4=isVersion3=isVersion7=false;
isVersion5=true;
version="6.0";
} else if (userAgent.indexOf("5.0")!=-1 || userAgent.indexOf("5.5")!=-1) {
isVersion4=isVersion3=isVersion6=isVersion7=false;
isVersion5=true;
version="5.0 or 5.5";
} else if (userAgent.indexOf("4.0")!=-1 ||
userAgent.indexOf("4.5")!=-1 ||
userAgent.indexOf("4.7")!=-1) {
isVersion3=isVersion5=isVersion6=isVersion7=false;
isVersion4=true;
version="4.0, 4.6, 4.7";
} else if (userAgent.indexOf("3.0")!=-1) {
isVersion4=isVersion5=isVersion6=isVersion7=false;
isVersion3=true;
version="3.0";
}


System.out.println("\r================================================ ======\r Browser="+browser+" Plattform="+plattform+" Version="+version+"...\r");
}
/*-------------------------------------------*/


   public String getVersion() {
     return version;
   }

   public void setVersion(String value) {
     version = value;
   }
   /*-------------------------------------------*/

   public String getBrowser() {
     return browser;
   }

   public void setBrowser(String value) {
     browser = value;
   }
   /*-------------------------------------------*/

   public boolean getBrowserVerOveride() {
     return browserVerOveride;
   }

   public void setBrowserVerOveride(boolean value) {
       browserVerOveride = value;
   }
   /*-------------------------------------------*/

public boolean isValidBrowser() {
if (browserVerOveride==false){
return false;
}
else if ((getBrowser().equals("Netscape")) && (getVersion().equals("7.0")) ||
(getBrowser().equals("MSIE")) && (getVersion().equals("6.0") ||
getVersion().equals("7.0")))
{
return true;
}
else
{
return false;
}
}


}
Kind regards
Jonathan :^)

_________________________________________________________________
Sign-up for a FREE BT Broadband connection today! http://www.msn.co.uk/specials/btbroadband
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.

References: 
 >Re: Browser Version Detection (From: David Teran <email@hidden>)

  • Prev by Date: Re: Anyone tried to use a G5 yet?
  • Next by Date: Re: Anyone tried to use a G5 yet?
  • Previous by thread: Re: Browser Version Detection
  • Next by thread: WebObjects Developer Needed -- Canada/Calgary
  • Index(es):
    • Date
    • Thread