Javascript 显示加载了哪些脚本

Javascript 显示加载了哪些脚本,javascript,Javascript,我怀疑一些用户有工具栏、插件、恶意软件或其他东西,当他们访问我们的网站时,浏览器中运行了一些javascript,而这些javascript正在破坏我们页面上的功能 我的javascript能看到哪些javascript是从其他文件加载的吗http://some.site/script.js“>?在浏览器上打开开发人员工具(通常使用F12)。然后检查网络部分/选项卡,它将列出加载到当前文档中的所有资源。如果要查找页面加载的脚本,但无法访问开发工具,可以在DOM中搜索脚本标记。这将只查找由DOM加

我怀疑一些用户有工具栏、插件、恶意软件或其他东西,当他们访问我们的网站时,浏览器中运行了一些javascript,而这些javascript正在破坏我们页面上的功能


我的javascript能看到哪些javascript是从其他文件加载的吗http://some.site/script.js“>?

在浏览器上打开开发人员工具(通常使用F12)。然后检查网络部分/选项卡,它将列出加载到当前文档中的所有资源。

如果要查找页面加载的脚本,但无法访问开发工具,可以在DOM中搜索脚本标记。这将只查找由DOM加载的脚本(这是非常典型的)。但它不会找到通过xhr请求加载的脚本,然后进行求值,也不会找到由浏览器扩展加载的脚本

但是,这仍然可能对您有所帮助。您可以这样做:

console.log(window.document.getElementsByTagName("script"))
XMLHttpRequest.prototype.send = function () {
  // do some checking of the request
  // do the actual request
  this.send();
}
这将把所有加载的脚本记录到控制台。或者,您可以在客户机中对此进行分析,如果您看到可疑内容,则会弹出一条明亮的大警告消息

要捕获其他类型的请求,您可以向xhr send方法添加包装器,如下所示:

console.log(window.document.getElementsByTagName("script"))
XMLHttpRequest.prototype.send = function () {
  // do some checking of the request
  // do the actual request
  this.send();
}

我还没有尝试过这个,所以可能有一些警告,比如我不确定是否所有的浏览器引擎都允许您重新定义内置类型的方法。但这是值得尝试的。

你的问题很有趣,但动机是错误的,我想。是什么让你相信“某些东西”正在破坏你的JavaScript?你能重现这个问题吗?即使某种bookmarklet正在破坏全局JavaScript代码,您(作为开发人员)也可以在需要时检查功能是否正确和polyfill

如果你更仔细地观察你的代码,以及为什么它没有达到你期望的效果,我希望你会发现恶意软件/工具栏/插件不是罪魁祸首


隔离失败的代码并复制行为。

我认为@LeifNeland希望在远程机器上找到脚本。只有当您坐在正在检查的机器旁时,您的答案才会起作用。应该在服务器端或客户浏览器中检测到答案。“嘿,我们的商店无法正常工作,因为您的浏览器受到来自www.superfish.com的恶意软件的感染。此恶意软件将xxxx。请执行yyy以消除感染。”因此,您首先必须识别罪犯,然后添加一些js以检测他们正在做的更改。很难事先识别罪犯,我只接到老板的电话“站点不再工作!?”!?“只要看看加载了哪些不是我们的脚本就好了。