diff --git a/src/platform-events.js b/src/platform-events.js index e7d40bf..79ebd3b 100644 --- a/src/platform-events.js +++ b/src/platform-events.js @@ -14,15 +14,26 @@ */ (function(scope) { var dispatcher = scope.dispatcher; + var nav = window.navigator; if (window.PointerEvent) { dispatcher.registerSource('pointer', scope.pointerEvents); - } else if (window.navigator.msPointerEnabled) { + } else if (nav.msPointerEnabled) { dispatcher.registerSource('ms', scope.msEvents); } else { dispatcher.registerSource('mouse', scope.mouseEvents); if (window.ontouchstart !== undefined) { dispatcher.registerSource('touch', scope.touchEvents); + /* + * NOTE: an empty touch listener on body will reactivate nodes imported from templates with touch listeners + * Removing it will re-break the nodes + * + * Work around for https://bugs.webkit.org/show_bug.cgi?id=135628 + */ + var isSafari = nav.userAgent.match('Safari') && !nav.userAgent.match('Chrome'); + if (isSafari) { + document.body.addEventListener('touchstart', function(){}); + } } }