1

当我加载一个页面时,有一个样式属性已添加到<body>我的模板中不存在的标签中。我如何发现 javascript 修改了它?

为了清楚起见,body 标签现在是:

<body class="home page" style="margin-top: -43px;">

所以样式不是来自样式表。虽然模板根本不包含“style=”位。所以我很确定一些正在运行的javascript正在修改body标签。

我可以使用 Firefox/Firebug 和 Chrome Inspector。我曾尝试在“HTML”/“元素”视图中右键单击正文标记并选择“属性修改中断”,但在我可以做到这一点时发生了变化,并且断点在页面重新加载后无法生存。

我正在使用 Django 和 jQuery,以防改变答案。

4

3 回答 3

2

我目前使用名为FireDiff的 Firebug 扩展,您可以在此处提交其主页:http: //www.incaseofstairs.com/firediff/

于 2013-01-16T16:25:32.437 回答
1

您可以使用突变观察者
尝试将此代码添加为在页面加载时执行的第一件事:

var target = document.querySelector('body'),
    observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            debugger;
        });
    });
  
observer.observe(target, { attributes: true });

作为旁注,如果这种特定类型的断点在页面重新加载后幸存下来,那就太好了。

于 2013-01-16T16:32:33.657 回答
0

它也有可能被添加到服务器端。如果您在源文件中搜索样式表名称,它应该出现在 JavaScript 或 Python 文件中。即“mystylefile.css”的grep

如果要缩小范围,您可以禁用 JavaScript 并查看是否仍添加它。

更新

找到将边距顶部添加到元素的内容将更加困难!您可以在 JavaScript 文件中搜索“margin-top”并查看返回多少结果 - 或逐个添加 JavaScript 文件,直到其中一个文件被添加。

于 2013-01-16T16:15:43.770 回答