diff --git a/src/standard/utils.html b/src/standard/utils.html index e574d1745c..8321952e90 100644 --- a/src/standard/utils.html +++ b/src/standard/utils.html @@ -375,20 +375,22 @@ var cached = list[link.href]; var imprt = cached || link; var self = this; + var loadListener = function(e) { + e.target.__firedLoad = true; + e.target.removeEventListener('load', loadListener); + e.target.removeEventListener('error', errorListener); + return onload.call(self, e); + }; + var errorListener = function(e) { + e.target.__firedError = true; + e.target.removeEventListener('load', loadListener); + e.target.removeEventListener('error', errorListener); + return onerror.call(self, e); + }; if (onload) { - var loadListener = function(e) { - e.target.__firedLoad = true; - e.target.removeEventListener('load', loadListener); - return onload.call(self, e); - } imprt.addEventListener('load', loadListener); } if (onerror) { - var errorListener = function(e) { - e.target.__firedError = true; - e.target.removeEventListener('error', errorListener); - return onerror.call(self, e); - } imprt.addEventListener('error', errorListener); } // if already loaded/erroed, fire 'fake' load/error event