检查被删除的元素onblur

tha*_*guy 17 javascript jquery google-chrome google-chrome-devtools

所以我有一个使用Javascript动态添加到页面的元素.添加后,它被授予焦点.

我想检查chrome dev工具中的元素,但问题是它有一个onblur事件处理程序,可以将它从DOM中删除.所以基本上当我点击开发工具来选择元素时,它就被删除了.这里可以看到一个例子:

http://jsfiddle.net/MSZEx/

HTML:

<div id="container">
    <button id="the_button">Click me to show field</button>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$("#the_button").click(function() {
    $elt = $("<input>").attr("type", "text").attr("id", "text_field");
    $("#container").append($elt);
    $elt.focus();
    $elt.blur(function() {
       $elt.remove(); 
    });
});
Run Code Online (Sandbox Code Playgroud)

在示例中,我希望能够检查单击按钮后显示的输入元素.

Jam*_*mie 50

所有这些答案对我来说都不起作用。

在撰写本文时 (Chrome 92),您可以使用RenderingChrome 开发工具中的设置:

Open Chrome Dev Tools> Click the kebab menu> > More tools dropdown>RenderingCheck emulate a focused page

这可以在使用 Chrome 开发工具时保持焦点启用

编辑:2024年1月20日 - Chrome 120 中仍然是这种情况

  • 这正是我一直在寻找的。这是一个永久的解决方案,完全符合我的要求 (3认同)

小智 16

我通过右键单击树中没有焦点的父节点来实现它的工作

- > Break on ... - > Subtree Modifications

请注意,页面刷新不会清除这一点,因此如果您忘记了放置断点的位置,可能必须关闭并重新打开检查器


dar*_*aim 15

右键单击元素树中的节点 - > Break on ... - > Node Removal.

调试器现在将在节点被删除之前中断.

  • 问题是关于如何达到能够做到这一点的程度.例如.在OP的小提琴中,当您在元素树中右键单击时,您将失去焦点(从而删除元素). (10认同)
  • @darthmaim 你运行的是什么 chrome 版本?我无法复制(Win8下的chrome 35.0) (2认同)
  • 这是公认的答案,但显然不适用于 Windows(此处相同) - 我认为应该在答案中明确说明。 (2认同)

Zuh*_*aha 6

我喜欢使用的技巧是

  • 打开源面板

  • 显示工具提示

  • 使用键盘快捷键暂停脚本执行。(将鼠标悬停在暂停图标上以查找键盘快捷键)

  • 当脚本执行暂停时,返回到 Elements 面板并像往常一样检查工具提示

在此处输入图片说明


Qta*_*tax 5

另一种方法是打开 Chrome 开发工具,将有问题的元素聚焦在浏览器视口中,然后点击F8这将停止所有 JS 运行(不会失去焦点),即使在失去焦点后也会离开该元素,直到您再次启用 JS。通过这种方式,您可以检查 DOM 树中的元素并从那里继续。

F8再次点击启用JS 。