Для решения, не относящегося к IE, вы можете принудительно использовать событие «useCapture» вместо «bubble», что позволит вам поместить обработчик события click в саму iframe
.
target.addEventListener(type, listener, useCapture Optional );
За MDN Документы :
Если true, useCapture указывает, что пользователь желает инициировать захват.После инициирования захвата все события указанного типа будут отправлены зарегистрированному слушателю перед отправкой в любые EventTargets под ним в дереве DOM.События, которые поднимаются вверх по дереву, не вызовут слушателя, предназначенного для использования захвата.Смотрите DOM Level 3 Events для подробного объяснения.Обратите внимание, что этот параметр не является обязательным во всех версиях браузера.Если не указано, useCapture имеет значение false.