只有在我打开开发人员工具时才能执行js文件的一部分吗?
我想要像
这样的东西#if DEBUG
executeMethodOnlyInDebugger();
#endif
但是对于JavaScript。
答案 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>