Javascript 如何使iframe上的控制台输出静音

Javascript 如何使iframe上的控制台输出静音,javascript,iframe,Javascript,Iframe,我的页面使用iframe来显示一些内容,但现在我正在处理主页,iframe的输出扰乱了我的控制台,使调试变得困难。有没有办法让控制台静音 我尝试将控制台设置为无操作: var CONSOLE_LOG = window.console.log; window.console.log = function() { /* nop */ }; function LOG(msg) { window.console.log = CONSOLE_LOG; console.log(msg);

我的页面使用iframe来显示一些内容,但现在我正在处理主页,iframe的输出扰乱了我的控制台,使调试变得困难。有没有办法让控制台静音

我尝试将控制台设置为无操作:

var CONSOLE_LOG = window.console.log;
window.console.log = function() { /* nop */ };

function LOG(msg)
{
    window.console.log = CONSOLE_LOG;
    console.log(msg);
    window.console.log = function() { /* nop */ };
}
我原以为这会起作用,但iFrame仍然会生成输出。

一把可以工作的小提琴


这在Mozilla、Chrome和Safari上都适用,我遇到了一个用例,其中iFrame是由第三方库创建的,因此我必须从文档中获取它们,而不是创建它们:

常量iframes=Array.from(document.getElementsByTagName('iframe'); 用于(iFrame的常量项){ item.contentWindow.console.log=()=>{/*nop*/}; }
很有趣。我想看一个现场演示,我应该什么时候做?我首先使用
createElement
创建iframe,将其添加到DOM,设置加载方法,然后设置
src
属性。如果我让您在创建后立即(在插入DOM之前)说,我会得到一个异常,即未定义null的parentWindow。如果我以后再这样做,iframe仍然会生成outputiframe.onload=function(){//在这里,当iframe完全加载时,您应该这样做}请查看此提琴,以测试它注释并取消注释iframeWindow.console.log=function(){/*nop*/};在firefox中运行良好,我也可以在Chrome上运行看到这把小提琴,但在IE和OperaCode上不起作用,所以不鼓励使用答案。请解释一下质量和长期价值。添加洞察以帮助未来访问者解决他们自己的类似问题的答案更有用,而且更有可能是错误的。@SherylHohman You's Som strict:),有时代码是自我记录的。
var iframe = document.createElement('iframe');
iframe.setAttribute("src", "yourIframeURL");
document.body.appendChild(iframe);
iframeWindow = iframe.contentWindow;
iframeWindow.console.log = function() { /* nop */ };