Ideally, GTM will fix this internally; until then, here is the solution I came up with ...
( GTM) , , ( ).
, 'click' , event.composedPath()[0]
, . , , , .
function getOriginalTarget(ev) {
if ('composedPath' in ev) return ev.composedPath()[0];
else if ('path' in ev) return ev.path[0];
else if ('originalTarget' in ev) return ev.originalTarget;
else if ('srcElement' in ev) return ev.srcElement;
else return ev.target;
};
document.addEventListener('click', function (ev) {
var target = getOriginalTarget(ev);
dataLayer.push({
'event': 'MyClick',
'targetId: target.id || '' // some custom data (from original target)
// etc...
});
}, false);
GTM 'event': 'gtm.click'
, , , , .. hacky, , , -, , . , GTM, 'gtm.elementClasses': target.className || ''
, 'gtm.elementId': target.id || ''
, 'gtm.elementTarget': target.target || ''
, 'gtm.elementUrl': target.href || target.action || ''
..