仅在调试模式下执行JS代码

时间:2015-10-19 14:33:12

标签: javascript debugging browser

只有在我打开开发人员工具时才能执行js文件的一部分吗?

我想要像

这样的东西
#if DEBUG
executeMethodOnlyInDebugger();
#endif

但是对于JavaScript。

5 个答案:

答案 0 :(得分:3)

不,javascript中原生没有conditional compilation

答案 1 :(得分:2)

不是真的。 但是你可以使用devtools-detect。请参阅以下答案:enter link description here

答案 2 :(得分:1)

试试此库:https://github.com/sindresorhus/devtools-detect

window对象进行一些检查,并在检测到控制台已打开时发出事件。我可能会谨慎地将它包含在生产代码中,但它可以为您的用例提供有用的调试工具。

答案 3 :(得分:1)

我认为有一种方法可以在Chrome和Firefox中检查。 最好的办法是在代码中加上调试标志。

虽然IE在开发人员工具未打开时将控制台设为undefined。 所以对于IE你可以这样做:

if(console){
  //dev tools is open
} else{
  //dev tools not open
}

另请查看有关chrome的更多信息: Find out whether Chrome console is open

答案 4 :(得分:1)

对于ASP.NET

在_Layout.cshtml(对于MVC)或Master(对于Web表单)中,添加以下内容:

<script>
    @if (HttpContext.Current.IsDebuggingEnabled)
    {
    @:var DEBUG = true;
    }
    else
    {
    @:var DEBUG = false;
    }
    alert('DEBUG: ' + DEBUG);
</script>

这样做的好处是,您可以使用Web.config中的配置值将其打开/关闭,以允许在任何环境中进行调试:

<system.web>
    <compilation debug="false" />
</system.web>