我的网页正在使用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仍会生成输出。
答案 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 */ };
}