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

时间:2015-02-19 08:23:41

标签: 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);
    window.console.log = function() { /* nop */ };
}

我希望这可行,但iframe仍会生成输出。

2 个答案:

答案 0 :(得分:7)

工作小提琴here

var iframe = document.createElement('iframe');
iframe.setAttribute("src", "yourIframeURL");
document.body.appendChild(iframe);
iframeWindow = iframe.contentWindow;
iframeWindow.console.log = function() { /* nop */ };

适用于Mozilla,Chrome,Safari

答案 1 :(得分:-1)

我遇到了一个用例,其中iframe是由第三方库创建的,因此我不得不从文档中获取它们,而不是创建它们:

const iframes = Array.from(document.getElementsByTagName('iframe'));
for (const item of iframes) {
  item.contentWindow.console.log = () => { /* nop */ };
}