如何隐藏来自iframe的控制台中的消息

时间:2016-03-02 08:15:48

标签: javascript html google-chrome

我正在使用console.log(...)进行调试。然而,控制台也从iframe获取消息(我在HTML代码中使用iframe)。我怎样才能看到我发送的日志而不是iframe中的日志?

6 个答案:

答案 0 :(得分:3)

如何在JavaScript中添加代码段以捕获iFrame引发的错误?

您可以将[IFRAME ERROR MESSAGE]替换为您的iFrame投掷的错误。如果代码段从iFrame中捕获错误,它将不执行任何操作,否则,它会将错误输出到控制台:

window.onerror = function (msg, url, line) {
    if (msg == "[IFRAME ERROR MESSAGE]") {
        return true
    }
    else {
        //do nothing
    }
}

请务必尽早将此代码放入脚本中。

Reference

Reference 2

工作示例(将其另存为test.html并以chrome格式打开):

<button onclick="myfunction()">x is not defined</button>
<button onclick="myfunction2()">y is not defined</button>

<script>
window.onerror = function (msg, url, line) {
    if (msg == "Uncaught ReferenceError: x is not defined") {
        return true
    }
    else {
        //do nothing
    }
}
function myfunction(){
    console.log(x);
}
function myfunction2(){
    console.log(y);
}

</script>

在此示例中,您将看到单击第一个按钮时控制台中不会输出任何错误,但是当您单击第二个按钮时将看到错误。

答案 1 :(得分:1)

您可以添加类似&#34;?nofrm = 1&#34;要查看日志的页面标记的src属性。然后在Chrome中,您可以输入&#34; nofrm&#34;进入过滤器只从他们脚本获取日志。添加&#34;?nofrm = 1&#34;如果你想记录内联脚本,也可以使用url。

答案 2 :(得分:1)

我为客户端编写了一个记录器服务。我使用了一种模式,通过该模式我可以过滤掉由我的sscript而不是iframe生成的日志/错误等。

function logger(){
    var pattern="PC:";
    var info=function(){
        Array.prototype.unshift.apply(arguments, [pattern]);
        console.info.apply(console, arguments);
    }
        var log=function(){
        Array.prototype.unshift.apply(arguments, [pattern]);
        console.log.apply(console, arguments);
    }
    var warning=function(){
        Array.prototype.unshift.apply(arguments, [pattern]);
        console.warn.apply(console, arguments);
    }
    var debug=function(){
        Array.prototype.unshift.apply(arguments, [pattern]);
        console.debug.apply(console, arguments);
    }
    var error=function(){
        Array.prototype.unshift.apply(arguments, [pattern]);
        console.error.apply(console, arguments);
    }
    return {
        info:info,
        log:log,
        warning:warning,
        debug:debug,
        error:error
    }
}

这里“PC:”是模式

答案 3 :(得分:1)

这是一个古老的帖子,但对于那些会来这里寻求帮助的人来说还是这样:

在Chrome中,您可以选中“仅选定上下文” (screenshot here)选项,就这样。

答案 4 :(得分:1)

只需(使用Chrome的过滤器框)从iFrame中过滤日志消息即可。

在Chrome的“控制台”选项卡中,有一个“过滤器”框,在其中键入要归档的文件名,并在文件名前加上减号“-”。 您可以使用空格作为分隔符来过滤乘法文件。

例如:

  

-LogUtil.js -FrameService.js


enter image description here

或者不用输入,只需右键单击一条日志消息,然后选择Hide message from <file_name>

答案 5 :(得分:0)

您可以通过源/隐藏来自除您拥有的其他脚本来过滤日志。如果您从较少数量的脚本获取日志

,它当然只是一个解决方案

Filter by source