0
Реализовано
Перестать переопределять .onload для всех подряд iframe
Скрипт https://mc.yandex.ru/metrika/tag.js
f.connectSlaveRecorder = function(a) { var c = this; if ("IFRAME" === a.nodeName && "ym-native-frame" !== a.name) { try { var b = 0 < a.contentDocument.documentElement.childNodes.length && "complete" === a.contentDocument.readyState } catch (gc) { b = !0 } var e = function Hb(a) { var b = a.contentWindow , e = a.contentDocument; if (b && e) { if (!0 === b.__YM_WV_RECORDABLE__) return O["default"].warn("Iframe has internal counter installed"); if (!0 === b.__YM_RECORDING__) return O["default"].warn("We're already recording this iframe", a); a.contentWindow.__YM_RECORDING__ = !0; b = c._createInstance(c._configOptions, { window: b, document: e }); b.init(c.initOptions); b.start(c.startOptions); O["default"].info("Recorder injected into the iframe", a) } else D(function() { return Hb(a) }, 10) } , d = function(a) { try { var c = !!a.contentWondow && !!a.contentWindow.location } catch (Xa) { O["default"].warn(Xa), c = !1 } c && !0 !== a.contentWindow.__WV_ENABLED__ && e(a) }; a.onload = function() { d(a) } ; b && (O["default"].log("Iframe is already loaded"), d(a)) } }
содержит фрагмент, который переопределяет свойство onload айфреймов, к которым яндекс не имеет отношения. Очевидно, что метрика не должна никоим образом менять то, что я записал своему айфрейму в onload, и код, видимо, нужно поменять на что-то вроде
a.addEventListener('load', function() { d(a) });
Ответ
+1
Я не уверен, что так и должно быть:
var c = !!a.contentWondow && !!a.contentWindow.location
Ошибка на 16.07.2019 присутствует в коде.
Сервис поддержки клиентов работает на платформе UserEcho
Исправили!