Skip to content

Commit b20ce80

Browse files
author
Adam Bradley
committed
fallback for browsers that don't support createEvent('CustomEvent')
1 parent a78a568 commit b20ce80

File tree

4 files changed

+21
-13
lines changed

4 files changed

+21
-13
lines changed

dist/js/ionic-angular.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/js/ionic.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,17 @@ window.ionic = {
245245
cancelable: false,
246246
detail: undefined
247247
};
248-
evt = document.createEvent("CustomEvent");
249-
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
248+
try {
249+
evt = document.createEvent("CustomEvent");
250+
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
251+
} catch (error) {
252+
// fallback for browsers that don't support createEvent('CustomEvent')
253+
evt = document.createEvent("Event");
254+
for (var param in params) {
255+
evt[param] = params[param];
256+
}
257+
evt.initEvent(event, params.bubbles, params.cancelable);
258+
}
250259
return evt;
251260
};
252261

dist/js/ionic.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/utils/events.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
// Custom event polyfill
1616
if(!window.CustomEvent) {
1717
(function() {
18-
var CustomEvent,
19-
ua = navigator.userAgent,
20-
androidVersion = ua.indexOf('Android') >= 0? parseFloat(ua.slice(ua.indexOf("Android")+8)) : 0;
18+
var CustomEvent;
2119

2220
CustomEvent = function(event, params) {
2321
var evt;
@@ -26,15 +24,16 @@
2624
cancelable: false,
2725
detail: undefined
2826
};
29-
if (androidVersion < 4.0) {
27+
try {
28+
evt = document.createEvent("CustomEvent");
29+
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
30+
} catch (error) {
31+
// fallback for browsers that don't support createEvent('CustomEvent')
3032
evt = document.createEvent("Event");
3133
for (var param in params) {
3234
evt[param] = params[param];
3335
}
3436
evt.initEvent(event, params.bubbles, params.cancelable);
35-
} else {
36-
evt = document.createEvent("CustomEvent");
37-
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
3837
}
3938
return evt;
4039
};

0 commit comments

Comments
 (0)