以编程方式控制Javascript中的断点?
答
看一看Firebug的功能调试(FN)& undebug(FN),它设置一个断点上命名的函数的第一行的名字。
看点6:
http://michaelsync.net/2007/09/30/firebug-tutorial-script-tab-javascript-debugging
+0
这可以从Javascript本身执行,还是只从萤火虫命令行?添加'debug(myFunctionName);'到我的代码会给我一个错误。 – nickf 2011-03-11 12:25:20
答
首先,你可以添加一个调用像__checkDebug()的函数;它将检查一个全局变量(或半全局变量),当所述变量为真时,调用调试器。
function __checkDebug() {
if (debugme) debugger;
}
所有的功能你担心调试会像这样:
function foo() {
__checkDebug();
//.... whatever foo was gonna do.
}
然后,您可以把它远一点,动态地在代码正在像这样执行的装饰功能:
Function.prototype.debug = function(){
var fn = this;
return function(){
if (debugme) debugger;
return fn.apply(this, arguments);
};
};
foo = foo.debug();
现在任何时候foo被调用,如果debugme变量是真的,它会调用调试器。
另一个选择是构建一个在每个函数声明后注入调用的JavaScript构建系统 - 这需要一个语法分析器,但是如果您只想修改函数,那么该用例的简单分词器很容易编写 - 但我会留给你的。
可能的重复[在代码中设置一个javascript断点 - 在chrome?](http://stackoverflow.com/questions/10050465/set-a-javascript-breakpoint-in-code-in-chrome)如果只有标题包含关键字“代码”搜索引擎优化的神灵将统治否则:-) – 2016-05-31 14:57:22