Skip to content

Commit 822a9da

Browse files
jkeen한정
authored andcommitted
Fix: Don't call methods that aren't available in the node environment (#27)
* Don't call methods that aren't available in the node environment * Remove node reference and fix indentation
1 parent 7973b0d commit 822a9da

File tree

1 file changed

+50
-48
lines changed

1 file changed

+50
-48
lines changed

src/js/browser.js

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -39,65 +39,67 @@ var browser = {
3939
version: 0
4040
};
4141

42-
var nav = window.navigator;
43-
var appName = nav.appName.replace(/\s/g, '_');
44-
var userAgent = nav.userAgent;
42+
if (window && window.navigator) {
43+
var nav = window.navigator;
44+
var appName = nav.appName.replace(/\s/g, '_');
45+
var userAgent = nav.userAgent;
4546

46-
var rIE = /MSIE\s([0-9]+[.0-9]*)/;
47-
var rIE11 = /Trident.*rv:11\./;
48-
var rEdge = /Edge\/(\d+)\./;
49-
var versionRegex = {
50-
firefox: /Firefox\/(\d+)\./,
51-
chrome: /Chrome\/(\d+)\./,
52-
safari: /Version\/([\d.]+).*Safari\/(\d+)/
53-
};
47+
var rIE = /MSIE\s([0-9]+[.0-9]*)/;
48+
var rIE11 = /Trident.*rv:11\./;
49+
var rEdge = /Edge\/(\d+)\./;
50+
var versionRegex = {
51+
firefox: /Firefox\/(\d+)\./,
52+
chrome: /Chrome\/(\d+)\./,
53+
safari: /Version\/([\d.]+).*Safari\/(\d+)/
54+
};
5455

55-
var key, tmp;
56+
var key, tmp;
5657

57-
var detector = {
58-
Microsoft_Internet_Explorer: function() { // eslint-disable-line camelcase
59-
var detectedVersion = userAgent.match(rIE);
58+
var detector = {
59+
Microsoft_Internet_Explorer: function() { // eslint-disable-line camelcase
60+
var detectedVersion = userAgent.match(rIE);
6061

61-
if (detectedVersion) { // ie8 ~ ie10
62-
browser.msie = true;
63-
browser.version = parseFloat(detectedVersion[1]);
64-
} else { // no version information
65-
browser.others = true;
66-
}
67-
},
68-
Netscape: function() { // eslint-disable-line complexity
69-
var detected = false;
62+
if (detectedVersion) { // ie8 ~ ie10
63+
browser.msie = true;
64+
browser.version = parseFloat(detectedVersion[1]);
65+
} else { // no version information
66+
browser.others = true;
67+
}
68+
},
69+
Netscape: function() { // eslint-disable-line complexity
70+
var detected = false;
7071

71-
if (rIE11.exec(userAgent)) {
72-
browser.msie = true;
73-
browser.version = 11;
74-
detected = true;
75-
} else if (rEdge.exec(userAgent)) {
76-
browser.edge = true;
77-
browser.version = userAgent.match(rEdge)[1];
78-
detected = true;
79-
} else {
80-
for (key in versionRegex) {
81-
if (versionRegex.hasOwnProperty(key)) {
82-
tmp = userAgent.match(versionRegex[key]);
83-
if (tmp && tmp.length > 1) { // eslint-disable-line max-depth
84-
browser[key] = detected = true;
85-
browser.version = parseFloat(tmp[1] || 0);
86-
break;
72+
if (rIE11.exec(userAgent)) {
73+
browser.msie = true;
74+
browser.version = 11;
75+
detected = true;
76+
} else if (rEdge.exec(userAgent)) {
77+
browser.edge = true;
78+
browser.version = userAgent.match(rEdge)[1];
79+
detected = true;
80+
} else {
81+
for (key in versionRegex) {
82+
if (versionRegex.hasOwnProperty(key)) {
83+
tmp = userAgent.match(versionRegex[key]);
84+
if (tmp && tmp.length > 1) { // eslint-disable-line max-depth
85+
browser[key] = detected = true;
86+
browser.version = parseFloat(tmp[1] || 0);
87+
break;
88+
}
8789
}
8890
}
8991
}
92+
if (!detected) {
93+
browser.others = true;
94+
}
9095
}
91-
if (!detected) {
92-
browser.others = true;
93-
}
94-
}
95-
};
96+
};
9697

97-
var fn = detector[appName];
98+
var fn = detector[appName];
9899

99-
if (fn) {
100-
detector[appName]();
100+
if (fn) {
101+
detector[appName]();
102+
}
101103
}
102104

103105
module.exports = browser;

0 commit comments

Comments
 (0)