OLD | NEW |
1 ### CoffeeScript version of the browser detection from MooTools ### | 1 ### CoffeeScript version of the browser detection from MooTools ### |
2 | 2 |
3 ua = navigator.userAgent.toLowerCase() | 3 ua = navigator.userAgent.toLowerCase() |
4 platform = navigator.platform.toLowerCase() | 4 platform = navigator.platform.toLowerCase() |
5 UA = ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|ve
rsion[\s\/:]([\w\d\.]+)|$)/) or [null, 'unknown', 0] | 5 UA = ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|ve
rsion[\s\/:]([\w\d\.]+)|$)/) or [null, 'unknown', 0] |
6 mode = UA[1] == 'ie' && document.documentMode | 6 mode = UA[1] == 'ie' && document.documentMode |
7 | 7 |
8 browser = | 8 browser = |
9 name: if UA[1] is 'version' then UA[3] else UA[1] | 9 name: if UA[1] is 'version' then UA[3] else UA[1] |
10 version: mode or parseFloat(if UA[1] is 'opera' && UA[4] then UA[4] else UA[2]
) | 10 version: mode or parseFloat(if UA[1] is 'opera' && UA[4] then UA[4] else UA[2]
) |
11 | 11 |
12 platform: | 12 platform: |
13 name: if ua.match(/ip(?:ad|od|hone)/) then 'ios' else (ua.match(/(?:webos|an
droid)/) or platform.match(/mac|win|linux/) or ['other'])[0] | 13 name: if ua.match(/ip(?:ad|od|hone)/) then 'ios' else (ua.match(/(?:webos|an
droid)/) or platform.match(/mac|win|linux/) or ['other'])[0] |
14 | 14 |
15 browser[browser.name] = true | 15 browser[browser.name] = true |
16 browser[browser.name + parseInt(browser.version, 10)] = true | 16 browser[browser.name + parseInt(browser.version, 10)] = true |
17 browser.platform[browser.platform.name] = true | 17 browser.platform[browser.platform.name] = true |
18 | 18 |
19 module.exports = browser | 19 module.exports = browser |
OLD | NEW |