监听(捕获)iframe控制台日志



我正试图捕获一个iframe的控制台日志,我无法访问它的源代码和实现

<iframe src="an http address" name="my-iframe"  allowFullScreen/>

当iframe记录数据时,我会在控制台中看到它们。但问题是,

这段代码

// define a new console
var console = (function(oldCons){
return {
log: function(text){
oldCons.log(text);
if(text === "hi"){
alert("text")
}
},
info: function (text) {
oldCons.info(text);
if(text === "hi"){
alert("text")
}
},
warn: function (text) {
oldCons.warn(text);
if(text === "hi"){
alert("text")
}
},
error: function (text) {
oldCons.error(text);
if(text === "hi"){
alert("text")
}
}
};
}(window.console));
//Then redefine the old console
window.console = console;

我从这篇文章中得到的对iframe日志不起作用它只适用于我的应用控制台日志

如果src是一个不同的域,并且你不能在另一个域上直接运行代码(例如,通过修改或插入.js(,那么你就无能为力了。这是出于安全原因:浏览器不想在域之间泄露任何信息,除非信息的发送者故意允许。

如果你可以更改另一个域上的代码,你可以对控制台进行猴痘,让它用postMessage将日志信息传递给父窗口,这样父窗口就可以用它做点什么。

如果你碰巧试图检查消息仅供个人使用(而不是供互联网上的随机用户使用(,你可以使用Tampermonkey这样的用户脚本管理器,修改浏览器,在另一个域上使用用户脚本运行自定义JavaScript。

最新更新