I need to research ways to run a diagnostic check on a user's browser. This includes

  • Cookies enabled
  • Javascript available and version
  • Pop-up windows enabled
  • Javascript available and version
  • Flash available and version

If anyone has any tips on how to integrate all of these checks on a single page, or any links that might be helpful, I would appreciate it. I am looking more for a point in the right direction than a detailed solution. Thanks for your help!

To see if cookies are enabled; try and set a cookie and then try and read it back. If you can't, cookies are disabled.

To see if javascript is available and the version, try and use some javascript; ( http://javascript.internet.com/user-details/javascript-version.html ) - bearing in mind that javascript version does NOT well-indicate javascript capabilities..

Pop up wndows, I imagine you won't be able to find out reliably: pop-up windows are handled by the browser AND/OR plugins. The best you could do is try and throw a popup, and if that page was accessed, log the user by checking a unique cookie ( assuming cookies are enabled ), and then use some AJAX on the original page to collect the result of the test. Unfortunately, that won't prove whether the window poped-up, opened in a background window/tab, etc.

Flash.. hm. A browser that supports flash SHOULD send an application/x-shockwave-flash MIME type in one of the HTTP request headers ( Accept I think ). Whether or not it does is down to the browser, I'm pretty sure that most don't, and that likely won't contain version info. Make a flash app, if it runs, flash works.

If you actually want to collect this info rather than just inform the user; you'll likely have to use AJAX to send javascript info back to your server dynamically.. For flash, you can access URLs using query strings or postdata dynamically, and use that to send data back to the server. Both of these methods assume that no response = failed test, although that might not always be the case... For a given user; javascript version might not support AJAX, flash might not be allowed to connect dynamically, some error may occur ( there's alot of tests going on )

For cookies, you can check that directly at the server; cookies are in the HTTP request header; for popups - don't bother, all browsers allow popups to a degree, even if the user has to explicity let them through individually.