/** * Uses CSS classNames on the HTML tag to describe user agent. CSS developers use these classNames to apply * CSS style that work around browser incompatibilities */ define('jira/ajs/browser/describe-browser', ['jira/util/navigator', 'jquery'], function (Navigator, jQuery) { function browserName() { if (Navigator.isEdge()) { return "msie edge"; } if (Navigator.isIE()) { return "msie"; } if (Navigator.isSafari()) { return "webkit safari"; } if (Navigator.isChrome()) { return "webkit chrome"; } if (Navigator.isMozilla()) { return "mozilla"; } if (Navigator.isOpera()) { return "opera"; } return ""; } function describeBrowser() { var classNames = []; var browser = browserName(); var version = Navigator.majorVersion(); classNames.push(browser); if (Navigator.isIE()) { classNames.push("msie-" + version); while (version > 6) { --version; classNames.push("msie-gt-" + version); } } jQuery("html").addClass(classNames.join(" ")); } return describeBrowser; }); AJS.namespace('AJS.describeBrowser', null, require('jira/ajs/browser/describe-browser'));