如何调试未知 html + js:如何跟踪 .js 正在为特定 class 修改 html?

How to debug unknown html + js: How to trace what .js is modding html for a specific class?

我正在维护一个网站,该网站执行一些神奇的行为(好吧,它添加了一些不在 html 中的字符)到标记的元素:

class="popupover-host"

我找不到在 css 中引用它,并且到目前为止在任何 .js

中都没有看到它被引用

在浏览器中,它是预呈现的,检查元素会显示完全处理的文本(例如源中的文本 html 加上添加的字符)。

我觉得我需要观察浏览器处理 html,但以前没有这样做过。

问题归结为这个(我认为):

静态 html + css 可以通过将 html 中的“class”标签映射到相关 css.我们知道浏览器在渲染时将两者结合在一起。给图片加上js,就更难搞清楚最后的html是怎么创建的了。

而且嵌套css...也很难搞清楚。

问题:

  1. 那么,我如何观看浏览器将它们全部结合在一起?

  2. 例如,如果我知道正在修改的“class”,我怎么知道修改是从哪里来的呢? (css and/or js)

  3. 有没有办法:a) 让浏览器告诉我修改了这个 class 内容的东西,或者 b) 运行 一个“调试器” " 关注有问题的 class,看看浏览器对那个 class 的内容有何应用?

好的,我找到了找出哪个 js 正在调整这个元素的方法。

这些步骤适用于 Windows 上的 Chrome。

首先,找到元素名称。右键单击正在修改的呈现的 html 单词,然后 select 检查元素。

查看 DOM 并找到特定于此元素的 class。在这种情况下是:

class="popupover-host"

(然后我搜索整个 html 来源以确保此 class 仅特定于相关修改后的文本。)

现在,打开开发人员工具 (F12) 并按 Ctrl+Shift+F

粘贴:popupover-host

进入搜索框并运行搜索。

就我而言,我得到了三个点击:

  • js(手迹没发现)
  • css(我是had找的,但是没有感兴趣的修改)
  • 来源html(我已经知道)

js修改:

return i.innerHTML = "*" + i.innerHTML

啊哈!现在我知道为什么渲染的 html 包含一个 * 字符,它不在源代码 html 中,也不是由 css!

完成的