fallback for browsers that don't support createEvent('CustomEvent')

This commit is contained in:
Adam Bradley
2014-01-30 20:38:57 -06:00
parent a78a56898c
commit b20ce800ab
4 changed files with 21 additions and 13 deletions

View File

File diff suppressed because one or more lines are too long

13
dist/js/ionic.js vendored
View File

@@ -245,8 +245,17 @@ window.ionic = {
cancelable: false,
detail: undefined
};
evt = document.createEvent("CustomEvent");
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
try {
evt = document.createEvent("CustomEvent");
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
} catch (error) {
// fallback for browsers that don't support createEvent('CustomEvent')
evt = document.createEvent("Event");
for (var param in params) {
evt[param] = params[param];
}
evt.initEvent(event, params.bubbles, params.cancelable);
}
return evt;
};

View File

File diff suppressed because one or more lines are too long

View File

@@ -15,9 +15,7 @@
// Custom event polyfill
if(!window.CustomEvent) {
(function() {
var CustomEvent,
ua = navigator.userAgent,
androidVersion = ua.indexOf('Android') >= 0? parseFloat(ua.slice(ua.indexOf("Android")+8)) : 0;
var CustomEvent;
CustomEvent = function(event, params) {
var evt;
@@ -26,15 +24,16 @@
cancelable: false,
detail: undefined
};
if (androidVersion < 4.0) {
try {
evt = document.createEvent("CustomEvent");
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
} catch (error) {
// fallback for browsers that don't support createEvent('CustomEvent')
evt = document.createEvent("Event");
for (var param in params) {
evt[param] = params[param];
}
evt.initEvent(event, params.bubbles, params.cancelable);
} else {
evt = document.createEvent("CustomEvent");
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
}
return evt;
};