From 13ec3bce5a8825ac5c8749e63b4d28ebea1518f0 Mon Sep 17 00:00:00 2001 From: Benjamin Reed Date: Fri, 24 Jan 2014 20:43:21 -0500 Subject: [PATCH] #470 change the CustomEvent polyfill to work with older browsers --- js/utils/events.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/js/utils/events.js b/js/utils/events.js index 04561974c24..b62d5ba8ae4 100644 --- a/js/utils/events.js +++ b/js/utils/events.js @@ -15,7 +15,9 @@ // Custom event polyfill if(!window.CustomEvent) { (function() { - var CustomEvent; + var CustomEvent, + ua = navigator.userAgent, + androidVersion = ua.indexOf('Android') >= 0? parseFloat(ua.slice(ua.indexOf("Android")+8)) : 0; CustomEvent = function(event, params) { var evt; @@ -24,8 +26,16 @@ cancelable: false, detail: undefined }; - evt = document.createEvent("CustomEvent"); - evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); + if (androidVersion < 4.0) { + 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; };