javascript - 如何识别网站中js/css文件包含的来源

标签 javascript css google-chrome web

我想知道是否有一种方法可以跟踪某些特定 .js 或 .css 文件包含到网站中的确切路径,尤其是来自第三方脚本,例如广告商。

假设我们有网站 X。在此站点上,包含一个脚本 A.js。但是,此文件会加载 A1.jsA2.js。同时,该站点将 B.js 作为第三方文件加载,其中包含 B1.css

问题来了:如何跟踪包含文件的路径,比如 X -> A.js -> (A1.js, A2.js) .

注释:

  1. 在异步世界中,不再可能跟踪发出的请求并按顺序对它们进行排序。
  2. 您不能查看 Referer HTTP 阅读器,因为它始终指向 X
  3. 最好是在 Chrome 开发工具 F12 中跟踪它。

最佳答案

您已经可以在 Chrome DevTools 中跟踪每个包含文件的路径。

为了实验,我在 127.0.0.42(可通过 127.0.0.42 访问)和 127.0.0.43(可访问来自 third.party.domain.tld),所以这两个服务器都是隔离的。

网站 X127.0.0.42 上运行,并且有一个过于简单的网页,代码如下:

<head>
    <script src="js/A.js"></script>
    <script src="http://third.party.domain.tld/js/B.js"></script>
</head>

它包括本地A.js 文件和来自第三方的B.js 文件。

A.js 文件具有与我们的 X 页面相同复杂级别的代码:

console.log("Hello from A.js!");

function include_script(source) {
    var script = document.createElement("script");
    script.src = source;

    document.head.appendChild(script);
}

include_script("js/A1.js");
include_script("js/A2.js");

请注意,这里的第 7 行是附加脚本文件的行。

A1.jsA2.js 都有一行记录两条不同的消息到控制台。

托管在第三方服务器上的 B.js 文件包含以下代码:

console.log("Hello from B.js!");

function include_style(source) {
    var link = document.createElement("link");
    link.rel = "stylesheet";
    link.href = source;

    document.head.appendChild(link);
}

include_style("http://third.party.domain.tld/css/B.css");

这会从第三方网站加载样式表。

现在打开 DevTools 并使用“网络”选项卡:

enter image description here

以红色突出显示的请求显示 A1.jsA2.js 加载由第 7 行 A.js 启动。

蓝色请求为B.js第8行发起的B.css加载。

绿色请求显示包含 (index) 中的 A.jsB.js -- 表示请求的索引页这些。

enter image description here

将鼠标悬停在每个资源的名称上以显示其原始位置。

enter image description here

单击启动器链接(A.js:7(index))以显示触发资源加载的确切行。

enter image description here

关于javascript - 如何识别网站中js/css文件包含的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52438705/

相关文章:

javascript - 将 json 分配给变量

javascript - "Cloning"事件上的 JQuery "Click"未针对所有按钮触发

javascript - Chrome JavaScript 错误

javascript - chrome.runtime.getURL 与 chrome.extension.getURL

javascript - @font-face 无法正常工作的问题

javascript - Sequelize.define 无法将可选对象合并到模型构造函数中

javascript - 多个 XMLHttpRequests 不工作

css - 内联 block 跨度是否有锁定的最小高度?

javascript - 在 Google Charts 中从同一数据源创建多个查询

javascript - JQueryUI slider - 3 个标签