如何冻结dom树的状态(不使用js "debugger"语句)来检查它?



也许我对浏览器的开发工具要求太高了,但是…是否有一些方法可以简单地冻结网页的状态,而不需要在JS代码中找到相对行并放置debugger语句?(不是浏览器特有的问题,任何浏览器都可以做到这一点)

我有一种情况,我想检查页面上的一些DOM,只能访问:

  • 我点击了一个特定的按钮
  • 它在模糊事件后消失(例如,一旦我在检查器中找到父元素并单击它,它立即消失)。

因为它触发点击,"强制元素状态"也没有帮助。

谢谢!

在Chrome中,如果您知道将被修改的界面中的包含元素,然后右键单击它并"检查元素"(或直接在DOM中查看它,如果这对您来说更容易),然后右键单击DOM中的元素并选择"Break on…">"子树修改"(或任何其他适合您的选项)。

当DOM中的任何元素发生变化时,这应该会暂停JavaScript的执行,允许你使用F10等来逐步执行JS,并在执行过程中的任何时候查看DOM。

如果你不知道什么会改变,你当然可以用这种方式监控整个<body>,但这可能会捕获太多的变化,这取决于你的页面有多动态

在开发工具中,您可以在源代码的任何行设置断点。它的工作原理就像Visual Studio一样。

即使您停止并重新启动浏览器,断点也将保持活动状态。它至少可以与Chrome/Firefox/Internet Explorer兼容。

或者,您可以在序列化后记录对象状态:

console.log( JSON.stringify( state ) )

最新更新