use*_*202 11 javascript debugging firefox firebug firefox-developer-tools
如果它看到debugger关键字,我怎么告诉Firefox不要停止?
debugger如果网站debugger使用定时器动态使用调试保护生成语句,我需要避免连续循环.
这是一个例子.如果您打开调试控制台,脚本将抛出大量的调试器语句,这将阻止您进行正常的调试工作.
一个示例网站是http://www.avito.ru--俄罗斯最大的分类网站.打开它,然后打开调试器控制台,它将立即停止debugger在生成的脚本中的关键字.
(function(x/**/) {
(function(f){
(function a(){
try {
function b(i) {
if(
(''+(i/i)).length !== 1 ||
i % 20 === 0
) {
(function(){}).constructor('debugger')();
} else {
debugger;
}
b(++i);
}
b(0);
} catch(e) {
f.setTimeout(a, x)
}
})()
})(document.body.appendChild(document.createElement('frame')).contentWindow);
});Run Code Online (Sandbox Code Playgroud)
Sam*_*rry 11
在编写此答案时的当前版本的 Firefox 中(版本 63.0.3),在开发者工具的调试器部分,有一个带有工具提示“跳过所有暂停”或“停用断点”的图标。启用后,它似乎禁止在任何debugger指令处停止。
显然,该页面试图避免人们使用该构造调试 JavaScript 代码。
在 Firebug 中调试
Firebug允许在语句上设置禁用断点debugger。由于该页面生成可变的调用堆栈深度,因此您需要为所有这些断点设置这些禁用的断点,以便能够正确调试 JavaScript。不幸的是,Firebug 在设置这些断点时似乎有问题。
此外,Firebug 没有忽略所有debugger语句的选项。
因此,如果您不需要调试 JavaScript,而只需要调试 HTML、CSS、网络请求等,则只需禁用脚本面板即可避免这些烦人的调试器停止。为此,右键单击“脚本”选项卡,然后单击打开菜单中的“启用” 。
注意:由于Firebug 开发已停止,因此提交增强请求是没有用的。
在 Firefox DevTools 中进行调试
不幸的是,Firefox DevTools目前不允许避免停止debugger语句。因此,您必须等到bug 1300934(以同一网站为例)、bug 925269和/或问题 828得到修复。
此外,无法完全禁用调试器面板,该面板被归档为bug 1247198。
| 归档时间: |
|
| 查看次数: |
4788 次 |
| 最近记录: |