如何冻结 dom 树的状态(不使用 js "debugger" 语句)来检查它?
How to freeze state of the dom tree (without using js "debugger" statement) to inspect it?
也许我对浏览器的开发工具要求太多了,但是...有没有什么方法可以简单地冻结网页的状态,而无需在 JS 代码中找到相关行并将 debugger
陈述? (不是特定于浏览器的问题,任何可以执行此操作的浏览器都很好)
我有一种情况,我想检查页面上的一些 DOM,只有在以下时间后才能访问:
- 我点击了一个特定的按钮
- 它在模糊事件后消失(例如,一旦我在检查器中找到父元素并单击它,它立即消失)。
因为它在点击时触发,"Force element state" 也没有帮助。
谢谢!
在开发工具中,您可以在源代码的任何行设置一个断点。
例如,它的工作原理与 Visual Studio 中的一样。
即使您停止并重新启动浏览器,断点仍将保持活动状态。
它至少适用于 Chrome / Firefox / Internet Explorer。
或者,您可以在 序列化 之后记录对象状态:
console.log( JSON.stringify( state ) )
在Chrome中,如果您知道界面中将要修改的包含元素,则右键单击它并"Inspect Element"(或者在DOM中直接进入它,如果这对你来说更容易),然后右键单击 DOM 中的元素并选择 "Break On..." > "Subtree modifications"(或其他适合你的选项)。
这应该会在 DOM 中的任何元素发生变化时暂停 JavaScript 执行,允许您使用 F10 等单步执行 JS 并随时查看 DOM在执行期间。
如果您不知道会发生什么变化,您当然可以通过这种方式监控整个 <body>
,但这可能会捕获太多变化,具体取决于页面的动态程度。
也许我对浏览器的开发工具要求太多了,但是...有没有什么方法可以简单地冻结网页的状态,而无需在 JS 代码中找到相关行并将 debugger
陈述? (不是特定于浏览器的问题,任何可以执行此操作的浏览器都很好)
我有一种情况,我想检查页面上的一些 DOM,只有在以下时间后才能访问:
- 我点击了一个特定的按钮
- 它在模糊事件后消失(例如,一旦我在检查器中找到父元素并单击它,它立即消失)。
因为它在点击时触发,"Force element state" 也没有帮助。
谢谢!
在开发工具中,您可以在源代码的任何行设置一个断点。 例如,它的工作原理与 Visual Studio 中的一样。
即使您停止并重新启动浏览器,断点仍将保持活动状态。 它至少适用于 Chrome / Firefox / Internet Explorer。
或者,您可以在 序列化 之后记录对象状态:
console.log( JSON.stringify( state ) )
在Chrome中,如果您知道界面中将要修改的包含元素,则右键单击它并"Inspect Element"(或者在DOM中直接进入它,如果这对你来说更容易),然后右键单击 DOM 中的元素并选择 "Break On..." > "Subtree modifications"(或其他适合你的选项)。
这应该会在 DOM 中的任何元素发生变化时暂停 JavaScript 执行,允许您使用 F10 等单步执行 JS 并随时查看 DOM在执行期间。
如果您不知道会发生什么变化,您当然可以通过这种方式监控整个 <body>
,但这可能会捕获太多变化,具体取决于页面的动态程度。