From 113eb8fa07365ba4606a7bd9d4098a9ce48d7882 Mon Sep 17 00:00:00 2001 From: xiaolou86 Date: Mon, 12 Mar 2018 21:18:04 +0800 Subject: [PATCH] Fix bug for MouseEventConstructor compatible with webkit-3.0 --- core/util/events.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/util/events.js b/core/util/events.js index 8efd0c23..35cb4c31 100644 --- a/core/util/events.js +++ b/core/util/events.js @@ -27,7 +27,18 @@ function _captureProxy(e) { if (_captureRecursion) return; // Clone the event as we cannot dispatch an already dispatched event - var newEv = new e.constructor(e.type, e); + var newEv = null; + try { + newEv = new e.constructor(e.type, e); + } catch (error) { + // Compatible with webkit-3.0 for MouseEventConstructor + if ( Object.prototype.toString.call(e) === '[object MouseEvent]') { + newEv = document.createEvent("MouseEvent"); + newEv.initMouseEvent(e.type, e.bubbles, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget); + } else { + throw error; + } + } _captureRecursion = true; _captureElem.dispatchEvent(newEv);