The documents under faq_notes/ are unmaintained. An up-to-date version of this document may be available at: /faq/notes/detect-browser/. Introduction Avoiding structural differences in the browser DOMs Browsers Differences Failed Strategies: Browser Detecting Assumptions Based on navigator.userAgent Assumptions Based on DOM Objects: Object inference A Strategy That Works: Object/Feature Detecting.