jQuery has some built-in browser agent tools: >From http://jquery.com/api
$.browser returns Boolean Contains flags for the useragent, read from navigator. Contains flags for the useragent, read from navigator.userAgent. Available flags are: safari, opera, msie, mozilla This property is available before the DOM is ready, therefore you can use it to add ready events only for certain browsers. There are situations where object detections is not reliable enough, in that cases it makes sense to use browser detection. Simply try to avoid both! A combination of browser and object detection yields quite reliable results. Example: Returns true if the current useragent is some version of microsoft's internet explorer $.browser.msie Example: Alerts "this is safari!" only for safari browsers if($.browser.safari) { $( function() { alert("this is safari!"); } ); } Does this help? Glen On 8/21/07, Dekortage <[EMAIL PROTECTED]> wrote: > > Hey all... > > I've been experimenting with jQuery a lot, and really like the > functionality it provides. However, there are times when I'd like to > use jQuery, but need to provide an alternative site for people with > older browsers (particularly visitors from rural locations in > developing countries, who often have much older and slower > technology). > > So, I need to detect the browser and make sure it can support jQuery. > Here is the basic code I've developed, which I've tested in a handful > of browsers. > > // object detection for jQuery-supported browsers > var isIE = (document.compatMode && document.all); // IE 6+ > var isFF = (Array.every || window.Iterator); // FF 1.5+ > var isOther = (typeof document.documentElement.style.maxHeight != > "undefined") && (!document.all); // Safari, Opera... > var jQ = false; > > // act on browser type > if (!isIE && !isFF && !isOther) { > window.location.replace("index2.html"); > } else { > jQ = true; > document.write('<script language="javascript" src="jquery.js"><\/ > script>'); > document.write('<script language="javascript" src="extras.js"><\/ > script>'); > } > > You can test this at http://www.tordevries.com/browser-check/. The > code uses object detection to identify browsers, though I'm not sure > this is the most optimal way of doing it. If none of the detection > booleans is true, the user is booted to a backup page (index2.html); > otherwise, the script dynamically loads jQuery and an external > JavaScript file. (I use a meta-refresh tag in the <noscript> tag to > forward people who have disabled JavaScript.) > > Oddly, if you use $(document).ready in the dynamically-loaded > extras.js file, Safari won't load it. I can't figure out why. Other > browsers are fine. So I fall back to an onLoad trigger in the body > tag, referencing a function in the extras.js file. Unfortunately, > older browsers (like IE 5 on the Mac) may trigger onLoad before they > get forwarded to the secondary page, thus generating an error because > the function hasn't been loaded. Thus, the body tag actually looks > like this: > > <body onLoad="if (jQ) init();"> > > If jQ is true, then onLoad can safely fire the init() function. > Otherwise it's ignored. > > So... thoughts? comments? Does the test page work for you? Is there > a better way to do this? Thanks in advance. > > > > -tdv > >