From 7264cbcdfbadc6bb216c65331ccff04c14621401 Mon Sep 17 00:00:00 2001 From: Andreas Svensson Date: Thu, 2 Jan 2014 15:36:38 +0100 Subject: [PATCH] Further cleanup of isEventSupported --- src/dom/isEventSupported.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/dom/isEventSupported.js b/src/dom/isEventSupported.js index 53e834cd51..1c6d51ccb7 100644 --- a/src/dom/isEventSupported.js +++ b/src/dom/isEventSupported.js @@ -20,13 +20,13 @@ var ExecutionEnvironment = require('ExecutionEnvironment'); -var testNode, useHasFeature; +var useHasFeature; if (ExecutionEnvironment.canUseDOM) { - testNode = document.createElement('div'); useHasFeature = document.implementation && document.implementation.hasFeature && - // `hasFeature` always returns true in Firefox 19+. + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature document.implementation.hasFeature('', '') !== true; } @@ -45,15 +45,16 @@ if (ExecutionEnvironment.canUseDOM) { * @license Modernizr 3.0.0pre (Custom Build) | MIT */ function isEventSupported(eventNameSuffix, capture) { - if (!testNode || (capture && !testNode.addEventListener)) { + if (!ExecutionEnvironment.canUseDOM || + capture && !('addEventListener' in document)) { return false; } - var element = document.createElement('div'); - + var eventName = 'on' + eventNameSuffix; - var isSupported = eventName in element; + var isSupported = eventName in document; if (!isSupported) { + var element = document.createElement('div'); element.setAttribute(eventName, 'return;'); isSupported = typeof element[eventName] === 'function'; }