javascript - 在页面加载之前使用 Firebug 调试 DOM 突变

标签 javascript jquery debugging dom firebug

我在调试 DOM 更改时遇到问题,这些更改是由我正在运行的某些 JavaScript 代码引入的。在代码的某处,元素的类发生了变化,我正在试图查明位置。不幸的是,新的类名太过通用以至于搜索所有 JS 代码会得到太多结果而不是一个可行的选择。

我试过使用 Firebug 进行一些调试,但尽管 "Break on Attribute Change" feature 不错,我无法让它以我想要的方式工作。 Firebug 演示工作正常,但这是加载后的情况。

问题似乎是我想在页面完全加载之前观察突变。我假设更改发生在 $(document).ready() 中的某处,所以它在 DOM 中,但我无法为 UI 断点 选择元素演示案例(页面加载后)。

除了grepping/手动检查代码之外,还有其他方法可以调试这种情况吗?

最佳答案

我建议您删除其类名已更改的目标元素。运气好的话,您可能会在 JavaScript 代码中生成错误,这样您就会发现问题出在哪里。

否则,如果它是由 JQuery (addClass) 完成的,您可能需要修改 JQuery 代码本身来找出调用堆栈。

代码看起来像这样(确保这段代码是包含 JQuery 后调用的第一段代码):

(function () {
    var addClass = jQuery.fn.addClass;
    jQuery.fn.addClass = function (value) {
        for (var i = 0, l = this.length; i < l; i++) {
            // Here you put your method to start the debugger if you get your right element
            if (this[i].id === "abc") {
                debugger;
            }
        }
        addClass(value);
    }
})();

希望对您有所帮助。

关于javascript - 在页面加载之前使用 Firebug 调试 DOM 突变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5841963/

相关文章:

javascript - 最新的node.js和最新的now.js

javascript - 如何确定 IE 中动态加载图像的 img 宽度/高度?

jquery - 显示其中包含文本字段的警报框

flash - 使用 Flash + AS3 发布/调试配置

javascript - 如何使用 Vue 对表单数据进行分组

使用 Google Chrome 逐行调试 Javascript

c# - 在 div 中设置默认按钮 - 但我不知道 ID/类

javascript - 有没有一种工具可以使调试 JavaScript 和 jQuery 更容易?

visual-studio - 如何使用 office 2010 调试 office 2007-addin

javascript - 根据屏幕尺寸使用 jQuery 动态包裹 div