Javascript 我怎样才能知道什么脚本正在设置我的元素';什么是隐藏的可见性?

Javascript 我怎样才能知道什么脚本正在设置我的元素';什么是隐藏的可见性?,javascript,jquery,asp.net-ajax,Javascript,Jquery,Asp.net Ajax,我正在处理一个复杂的页面,其中有许多不同的脚本,一些是ASP.NETAjax,一些是jQuery 由于某些原因,当页面加载其中一个元素时,其可见性设置为隐藏 有什么能告诉我是什么导致这个元素不可见的吗?或者甚至可以阻止任何脚本执行此操作时发生的一切,以便我可以看到它是什么?使用,您可以在脚本中设置断点,并观察变量在不同点的变化。在变量上设置一个监视,并在脚本中设置断点,以尝试确定何时设置该变量。幸运的是,在这个问题成为难题之前,我就遇到了这个问题。使用DOM检查器(就像Chrome内置的那样)首

我正在处理一个复杂的页面,其中有许多不同的脚本,一些是ASP.NETAjax,一些是jQuery

由于某些原因,当页面加载其中一个元素时,其可见性设置为隐藏

有什么能告诉我是什么导致这个元素不可见的吗?或者甚至可以阻止任何脚本执行此操作时发生的一切,以便我可以看到它是什么?

使用,您可以在脚本中设置断点,并观察变量在不同点的变化。在变量上设置一个监视,并在脚本中设置断点,以尝试确定何时设置该变量。幸运的是,在这个问题成为难题之前,我就遇到了这个问题。

使用DOM检查器(就像Chrome内置的那样)首先确定它是因为CSS规则而设置为隐藏,还是因为它是通过直接内联样式设置以编程方式设置为隐藏

如果通过编程将其设置为hidden,那么我所知道的唯一一件事就是搜索所有javascript代码,以查找可能改变可见性的任何内容

然后,当您找到一些候选代码行时,使用javascript调试器(我最喜欢的是内置在Chrome中的调试器)并在每一行上设置断点。然后,在设置断点后重新加载页面,当其中一个断点被命中时,您可以单步查看代码的这一部分,并查看是谁在执行此操作。在这一点上,您甚至可以查看调用堆栈,看看代码是如何调用它的,等等。或者,您可以一步一步地从这段代码中走出来,进入调用它的更高级别,看看他们为什么这样做


如果是CSS规则使其隐藏,那么您需要查看是什么触发了这些CSS规则(类、ID等),并找出如何更改一个或另一个,以便所需对象不会被该CSS规则隐藏。请记住,可以通过javascript在DOM中的对象中添加/删除类,这也是原因之一。

您可以尝试并调试。。或者你可以用这样的东西覆盖它:

CSS

#element, .elements{
    visibility: visible !important;
}
修改脚本可能会破坏其他内容。 有时在生产环境中,不允许修改其他预存在的脚本。
有时候,花时间去弄清楚它是什么脚本是不值得的。特别是如果页面上有10-20个脚本可以随时更新或更改。

使用Firebug或IE开发工具,您可以开始逐步浏览代码。
一些ASP.NET AJAX和一些jQuery
:我的哀悼。