From 7d6f8bb0846b863d8a2aa78b8ce1e480a7cf7413 Mon Sep 17 00:00:00 2001 From: saphaljha Date: Fri, 11 Sep 2020 11:01:41 +0530 Subject: [PATCH] Fixed issue when using dynamic elements --- .../View/Helper/SecureHtmlRenderer.php | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/internal/Magento/Framework/View/Helper/SecureHtmlRenderer.php b/lib/internal/Magento/Framework/View/Helper/SecureHtmlRenderer.php index ae8ab3f15bc96..d7369416f44bf 100644 --- a/lib/internal/Magento/Framework/View/Helper/SecureHtmlRenderer.php +++ b/lib/internal/Magento/Framework/View/Helper/SecureHtmlRenderer.php @@ -111,16 +111,21 @@ public function renderEventListenerAsTag( function {$listenerFunction} () { {$attributeJavascript}; } - var {$elementName} = document.querySelector("{$elementSelector}"); - if ({$elementName}) { - {$elementName}.{$eventName} = function (event) { - var targetElement = {$elementName}; - if (event && event.target) { - targetElement = event.target; + var {$elementName}Array = document.querySelectorAll("{$elementSelector}"); + + {$elementName}Array.forEach(function(element){ + if (element) { + element.{$eventName} = function (event) { + var targetElement = element; + if (event && event.target) { + targetElement = event.target; + } + {$listenerFunction}.apply(targetElement); } - {$listenerFunction}.apply(targetElement); } - } + }); + + script; return $this->renderTag('script', ['type' => 'text/javascript'], $script, false);