我正在处理一个复杂的页面,其中包含许多不同的脚本,一些 ASP.NET AJAX 和一些 jQuery。
由于某种原因,当页面加载时,其中一个元素的可见性设置为隐藏。
有什么东西可以告诉我是什么导致这个元素不可见吗?或者甚至可以阻止正在执行此操作的任何脚本中发生的所有事情,以便我可以看到它是什么?
最佳答案
使用 DOM 检查器(如 Chrome 内置的检查器)首先确定它是由于 CSS 规则而设置为隐藏,还是因为它是通过直接内联样式设置以编程方式设置为隐藏。
如果它以编程方式设置为隐藏,那么我唯一知道的就是搜索所有 javascript 代码以查找任何可能改变可见性的内容。
然后,当您找到一些候选代码行时,使用 javascript 调试器(我最喜欢的是 Chrome 中内置的调试器)并在每一行上设置断点。然后,在设置断点后重新加载页面,当遇到其中一个断点时,您可以单步执行该部分代码,看看是谁在做这件事。到那时,您甚至可以查看调用堆栈并查看是什么代码调用了它等等。或者,您可以单步执行和退出此代码,进入调用它的更高级别,看看他们为什么这样做。
如果是 CSS 规则使其隐藏,那么您需要查看是什么触发了这些 CSS 规则(类、ID 等...)并弄清楚如何更改一个或另一个以便您想要的对象未被该 CSS 规则隐藏。请记住,可以通过 javascript 在 DOM 中的对象中添加/删除类,这也可能是原因之一。
关于javascript - 我怎样才能找出是什么脚本将我的元素的可见性设置为隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491380/