我想查看哪个代码修改了网页上的DOM元素,所以我在Chrome中通过右键单击DevTools检查器中“Elements”选项卡中的元素,并选择“Break on...” ->“Subtree Modifications”来设置断点。脚本会在页面加载时(而不是之后)修改该元素,因此我希望保留DOM断点并刷新页面。保存javascript代码中断点的过程似乎不适用于DOM断点。图片链接:
在Chrome中,DOM断点在刷新后不会被保留,而是被丢弃,然后在onload事件之后恢复。请参见错误报告571519,以及该报告中的评论:“我们在重新加载时保留DOM断点,但只有在onload事件之后才会恢复断点。因此,如果您希望在那之前触发断点或将其设置在惰性添加的节点上,则不会恢复断点。尽管我们应该修复这个问题。”以下是解决方法:1.暂停Javascript,可以使用普通断点或使用Javascript的debugger;行。2.删除所有DOM断点并添加所需的DOM断点。3.继续执行。
我认为这个答案没有一个合适的解释,因为我也遇到了这个问题。步骤如下: 按F12打开开发者工具控制台, 您需要尝试减慢网页渲染速度,以便能够快速暂停JavaScript执行。我使用的技巧是转到网络选项卡,并将在线下拉字段设置为慢3G,使页面变得更慢。 选择源选项卡,然后在左侧边栏中检查断点,并确保所有断点都已删除。如果仍然有一些断点,则将它们删除。点击您的暂停执行按钮 回到您的网页并重新加载它,在网络设置为慢3g的情况下,您的页面变得更慢,然后您可以快速返回到源代码并暂停执行,一旦您可以看到您的HTML dom已加载。通过这种方式,您的网页处于暂停状态 转到元素选项卡,找到要设置断点的元素并设置它。然后返回源选项卡并单击继续执行,这将使执行停止在您的元素的断点处