Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查浏览器中消失的元素?_Javascript_Google Chrome_Firefox_Firebug_Opera Dragonfly - Fatal编程技术网

Javascript 如何检查浏览器中消失的元素?

Javascript 如何检查浏览器中消失的元素?,javascript,google-chrome,firefox,firebug,opera-dragonfly,Javascript,Google Chrome,Firefox,Firebug,Opera Dragonfly,如何检查鼠标离开时消失的元素? 我不知道它的ID,阶级或任何东西,但想检查它 我尝试过的解决方案: 在控制台中运行jQuery选择器$('*:contains(“some text”)),但运气不好,主要是因为元素没有隐藏,但可能已从DOM树中删除 手动检查DOM树的变化并没有给我任何帮助,因为它似乎太快了,以至于无法注意到发生了什么变化 成功: 我已成功使用事件断点。特别是在我的情况下,鼠标向下移动。只需进入Chrome中的Sources->Event Listener Breakpoint

如何检查鼠标离开时消失的元素?

我不知道它的ID,阶级或任何东西,但想检查它

我尝试过的解决方案:

在控制台中运行jQuery选择器<代码>$('*:contains(“some text”)),但运气不好,主要是因为元素没有隐藏,但可能已从DOM树中删除

手动检查DOM树的变化并没有给我任何帮助,因为它似乎太快了,以至于无法注意到发生了什么变化

成功:


我已成功使用事件断点。特别是在我的情况下,鼠标向下移动。只需进入Chrome中的
Sources->Event Listener Breakpoints->Mouse->mousedown
。在那之后,我单击了我想要检查的元素,在
范围变量中我看到了一些有用的说明。

您可以在元素下查看检查器中出现和消失的元素。如果在元素可见时导航到该元素,则应该能够看到它消失,或者在状态更改时看到它的css更改


firefox中的firebug或chrome中的内置inspector都可以做到这一点。

firebug中有不同的解决方案:

  • 您可以在HTML面板中使用。(有了它,您还可以找出它是哪个元素)
  • 您可以右键单击元素并选择Inspect element with Firebug
  • 此外,您可能还需要遵循,它要求提供一种临时阻止特定事件的方法

    编辑:

    要找出它是哪个元素,还可以启用高亮显示更改,展开更改并将更改滚动到视图中,以使该元素在HTML面板中可见

    Sebastian(这个答案只适用于Chrome开发者工具。请参阅下面的更新。)

    查找包含消失元素的元素。右键单击元素并应用“断开…”子树修改。这将在元素消失之前引发调试器暂停,这将允许您在暂停状态下与元素交互

    2019年10月22日更新:随着v。70,看起来FireFox终于支持这种调试了:


    2020年9月15日更新:Chrome有一个“模拟聚焦页面”选项(您可以从[⌘]+[P] 命令菜单或全局首选项)来满足这一确切需求。

    Chrome中的另一种方法:

    • 打开devTools(F12)
    • 选择“源”选项卡
    • 显示所需的元素时,按F8(或Ctrl+/)。这将中断脚本执行,并完全按照显示的方式“冻结”DOM
    • 从这一点开始,使用Ctrl+Shift+C选择图元

    我在Mac上使用chrome,我已经按照上面的步骤进行了操作,但我将尝试进一步解释:

  • 单击鼠标右键并转到“检查图元”
  • 转到“源”选项卡
  • 然后将鼠标悬停在元素上
  • 然后使用键盘
    F8
    命令(窗口)\
    。它将在静态状态下暂停屏幕,悬停时元素不会消失

  • 在我的例子中,我在google chrome上使用了递归展开选项:

    这些步骤是:

  • 检查下拉字段
  • 查找动态DOM(紫色突出显示)
  • 在动态DOM上单击鼠标右键
  • 选择递归展开
  • 我们可以看到所有元素都在那里
  • 下面是一个演示:


    我也遇到了同样的问题,但我使用Firefox,一旦我打开inspect element找到解决方案,它就会消失:
    打开4个破折号(设置)转到web developer>Debugger并立即按F8键,这是暂停的快捷方式,可在脚本启动之前停止脚本,并检测到您打开了开发人员工具,用鼠标将鼠标悬停在元素上,然后按F8键(这在Chrome中)暂停脚本执行。悬停状态将保持可见

    它将带您进入“源”选项卡。 返回“元素”选项卡。此时间代码不会消失

  • 开放式控制台
  • 键入
    setTimeout(()=>{debugger;},5000);
  • 按回车键
  • 现在,您有5秒钟的时间让元素出现。一旦它出现,请等待调试器点击。只要您不继续,您就可以玩您的元素,并且它不会消失


    避免每次重复上述步骤的有用提示:

    将此添加为bookmarklet:

  • 为任何页面添加书签
  • 编辑此新书签
  • 将URL/位置替换为:
    javascript:(函数(){setTimeout(()=>{debugger;},5000);}();

  • 下次您想要使用此书签时,只需单击/点击此书签。

    可能有Dom元素和控制器函数在刷新会话。在我的情况下,通过“启动而不调试”来运行应用程序会有所帮助

    执行以下操作(OSX):

  • 打开控制台并导航到“元素”选项卡
  • 键入
    command+shift+P
  • 键入单词
    focused
  • 从菜单中选择
    模拟聚焦页面

  • 现在,在控制台中单击不会关闭元素。

    是的。我已经说过,DOM中的更改发生得太快,页面对DOM的修改太多,所以这不是一个解决方案,因为我无法区分我所需的元素和所有地方的大量修改:)您可以尝试使用console.log跟踪正在发生的事情,例如,在开始时您可以查看对象css等,或者减慢更改速度,直到您知道更改工作正常,然后将更改速度更改为您想要的速度,例如隐藏('slow')在jqueryProblem中,问题是-它不是我自己的代码库,它是一个遗留的、大的、旧的代码库,在这里,简单地搜索文件什么都没有给我:)你也可以在inspector中查看页面正在使用的文件