- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑以下愚蠢的例子:
<!doctype html>
<meta charset="utf-8">
<title>dumb snippet</title>
<script>
var i = 0;
while (i < 100) {
console.log(i);
debugger;
i += 1;
}
</script>
如果我使用 Google Chrome 的 DevTools 运行这段代码,调试器会尽职尽责地在 debugger
语句处停止执行,但我还没有找到任何方法来立即中止(并重新启动)脚本。 AFAICT,按下 Ctrl-R
甚至 Shift-Ctrl-R
,而不是重新加载页面,只会导致执行继续。
我发现的唯一办法很明显,但带来不必要的不便:完全关闭选项卡/窗口,然后打开一个新的。
Google Chrome DevTools 是否提供了一些方法来立即中止在 debugger
语句处停止的脚本?
(如果答案恰好是“否”,请不要发布解决方法。我可以想到很多,例如按住 F-8 直到循环退出,当然这不会起作用,如果循环结果是一个无限循环。无论如何,这里我只对是否有一种“官方”方式来中止并重新启动这样的脚本感兴趣。)
最佳答案
你可以做到,但你必须先准备好你的代码。
在 Google Chrome Dev Tools 中停止脚本执行的说明:
(1) 创建一个全局变量:
var devquit=0;
$(document).ready({
//the rest of your code
(2) 任何你可能希望退出的地方,插入这个变量的测试:
//Lotsa code
if (devquit > 0) return false;
(3) 在上述测试行或之前暂停执行脚本
(4) 切换到控制台
(5) 类型:
> devquit
0
> devquit=1 <=== only this line is necessary
> devquit
1
(6) 继续执行脚本。当脚本执行上述步骤 (2) 中的测试时,脚本将返回 false
注意事项:
(A) 这个技巧适用于全局变量和对象,但不适用于局部变量。
(B) 因此,您仍然可以对已运行的代码使用此技巧如果您有一个全局变量或一个对象,如果它有一个给定的值。
(C) 在紧要关头,您还可以从 DOM(在元素选项卡上)删除一个会导致 javascript 错误的元素。例如,假设您有代码 var cartype = $('#cartype').val();
如果您在该行代码之前删除 ID=cartype
的元素,然后 js 将在那条线上中断。 但是,当您尝试重新运行代码时,该元素仍然会丢失。上述技巧允许您运行和重新运行代码ad无限。
更多注意事项:
(a) 在代码中插入断点:只需在一行中单独键入 debugger;
。如果 DevTools 打开,脚本将在此时跳转到调试器。如果 DevTools 未打开,代码将忽略语句。
(b) 想要避免在调试代码时跳入 jQuery 库?黑箱它。参见 blackbox instructions for Chrome - 或 - for Firefox
感谢(请访问并点赞):
Javascript Debugging line by line using Google Chrome
Is it possible to change javascript variable values while debugging in Google Chrome?
关于javascript - Chrome : How to abort a script that is stopped at `debugger` statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19625087/
我经常使用stop Fortran 中固有的因各种原因停止执行(主要是在测试失败后)。 program test1 stop end program 除了停止程序执行之外什么都不做。 prog
我想编写一个函数,用字符 e 替换所有出现的字符 c。这些功能似乎正在发挥作用。然而,主要是,我希望能够重复输入一个字符串,扫描要替换的字符,扫描要替换的字符,并打印之前和之后的内容,直到输入的字符串
在 powershell 中,我看到了多种停止服务的方法 更现代的方式 Stop-Service wuauserv 而更传统的方式 NET STOP WUAUSERV 遗留方式 is much mor
所以问题是我需要一个正则表达式,只有当它的 stop 也意味着 stopp 或 sstoooppp 时,它才会匹配第二个单词> 后跟一个空格。我需要得到这个词,我找不到任何正则表达式来做到这一点,因为
我正在做这样的事情 http://jsfiddle.net/8ErSL/2/ 当您将鼠标悬停在任何文本框 (div) 上时,其中会出现一个小图标。 我想阻止图标的淡入淡出效果在我不小心将鼠标悬停在 d
这段代码在 Debug模式下工作得很好,但当不是 Debug模式时它总是抛出运行时异常。 mMediaRecorder.stop(); 根据 Java 文档: Stops recordin
这是我的full code ,这里是my project ,当我在 #onCreate 中使用 MediaRecorder#stop 时,它会引发 java.lang.RuntimeException
我使用 C# 编写了一个库并在 PowerShell 脚本中使用它。 C# 库将大量数据加载到数据库中。我正在使用 Start-Job 来启动该过程,并且我正在监视一个文件是否有错误。 但是,我发现即
我正在尝试编写以下问题的代码: 在 a0, a1, ..., an 处有 n 个酒店,使得 0 dp(k)+(ai-ak)^2) dp(i) = dp(k)+(ai-ak)^2)
我有一个简单的测试,我使用 run_forever 方法运行 Python asyncio 事件循环,然后立即在另一个线程中停止它。但是,事件循环似乎并没有终止。我有以下测试用例: import as
我有以下情况: 专用租赁 m4.large 运行 RHEL6 的 EC2 实例 使用 AWS 控制台手动启动它效果很好 尝试启动它的 Lambda 函数(用 Java 编写)失败,因为实例状态为:已停
我正在使用 Yajsw 将我的应用程序作为守护进程运行。 对于状态调用,我希望看到“正在运行”或“已停止”,但我收到的消息如下所示 SW043305-SRV01:/etc/init.d # ./tes
在 Tomcat 或 TomEE 中,service tomcat start/stop 和 ./catalina.sh run/stop 有什么区别? 他们做的事情完全一样吗? 最佳答案 catal
我正在尝试使用 C++ 和 OpenGL/GLUT 制作一个 Snake 克隆。然而,我一直在编程允许输入 Action 之间的短时间间隔时遇到问题。我已经尝试了一些计时方法,最后我为它创建了一个类(
问题: org.apache.catalina.loader.WebappClassLoader - The web application [/…] appears to have started
我正在尝试以下实验: 我有两个QpushButtons,比如PushA 和PushB。现在 PushA 在 QHBoxLayout 中,PushB 也在它自己的 QHBoxLayout 中。这两个水平
我已经在我的 windows 10 机器上安装了 Docker for Windows。当我尝试从“windows 容器”“切换到 linux 容器”时,出现错误。 Unable to start:
我在我的应用程序中集成了摄像头。当用户单击捕获按钮时,我隐藏了工具栏,以便摄像头预览屏幕尺寸增加。这会导致应用程序在停止在线录制时崩溃 - mMediaRecorder.stop(); 。 java.
运行功能时 stop("m Sys.setenv(LANG = "fr") > 2 + x Erreur : objet 'x' introuvable > Sys.setenv(LANG = "en
我有一个 Windows 10 内部版本,我正在尝试安装 cpriego/valet-linux使用 wsl2 我已经安装了 composer、php 和所有其他的要求。 现在当我做 valet st
我是一名优秀的程序员,十分优秀!