Skip to content

Commit ccde43b

Browse files
committed
refactor(events): don't clobber window.CustomEvent
Resolves #1231
1 parent f370db4 commit ccde43b

File tree

1 file changed

+23
-30
lines changed

1 file changed

+23
-30
lines changed

Diff for: js/utils/events.js

+23-30
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,29 @@
1313
(function(ionic) {
1414

1515
// Custom event polyfill
16-
if(!window.CustomEvent) {
17-
(function() {
18-
var CustomEvent;
19-
20-
CustomEvent = function(event, params) {
21-
var evt;
22-
params = params || {
23-
bubbles: false,
24-
cancelable: false,
25-
detail: undefined
26-
};
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')
32-
evt = document.createEvent("Event");
33-
for (var param in params) {
34-
evt[param] = params[param];
35-
}
36-
evt.initEvent(event, params.bubbles, params.cancelable);
37-
}
38-
return evt;
16+
ionic.CustomEvent = window.CustomEvent || (function() {
17+
function CustomEvent(event, params) {
18+
var evt;
19+
params = params || {
20+
bubbles: false,
21+
cancelable: false,
22+
detail: undefined
3923
};
40-
41-
CustomEvent.prototype = window.Event.prototype;
42-
43-
window.CustomEvent = CustomEvent;
44-
})();
45-
}
24+
try {
25+
evt = document.createEvent("CustomEvent");
26+
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
27+
} catch (error) {
28+
// fallback for browsers that don't support createEvent('CustomEvent')
29+
evt = document.createEvent("Event");
30+
for (var param in params) {
31+
evt[param] = params[param];
32+
}
33+
evt.initEvent(event, params.bubbles, params.cancelable);
34+
}
35+
return evt;
36+
}
37+
CustomEvent.prototype = window.Event.prototype;
38+
})();
4639

4740

4841
/**
@@ -65,7 +58,7 @@
6558
*/
6659
// Trigger a new event
6760
trigger: function(eventType, data, bubbles, cancelable) {
68-
var event = new CustomEvent(eventType, {
61+
var event = new ionic.CustomEvent(eventType, {
6962
detail: data,
7063
bubbles: !!bubbles,
7164
cancelable: !!cancelable

0 commit comments

Comments
 (0)