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)
});
Answer
+1
Я не уверен, что так и должно быть:
var c = !!a.contentWondow && !!a.contentWindow.location
Ошибка на 16.07.2019 присутствует в коде.
Customer support service by UserEcho
Исправили!