2013-04-04 52 views
-1

我怀疑有些用户有工具栏,插件,恶意软件或其他东西,它们在访问我们的网站时在其浏览器中运行一些JavaScript,并且这个JavaScript会搞乱我们页面上的功能。显示加载了哪些脚本

我的JavaScript可以看到哪些JavaScripts已经从其他文件,即通过http://some.site/script.js'>加载?

回答

0

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

+0

我认为@LeifNeland想在远程机器上找到脚本。只有当您坐在正在检查的机器上时,您的答案才有效。 – 2013-04-04 19:49:45

+0

应该在服务器端检测到,或者在客户浏览器中显示。 “嘿,我们的商店无法正常工作,因为您的浏览器受到www.superfish.com的恶意软件感染,这个恶意软件将会被xxxx,请执行yyy以消除感染。” – 2013-04-04 19:50:21

+0

所以你首先必须找出罪魁祸首,然后添加一些js来检测他们正在做的改变。 – bfavaretto 2013-04-04 19:55:45

0

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

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

console.log(window.document.getElementsByTagName("script")) 

这会将所有加载的脚本记录到控制台。或者,您可以在客户端进行分析,并在出现可疑情况时弹出明亮的大警告消息。

要拍摄其他类型的请求,你也许能包装添加到XHR发送方法,像这样:

XMLHttpRequest.prototype.send = function() { 
    // do some checking of the request 
    // do the actual request 
    this.send(); 
} 

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

0

你的问题很有趣,但动机是错误的,国际海事组织。是什么让你相信“某些东西”正在搞乱你的JavaScript?你能重现这个问题吗?即使某种bookmarklet正在破坏全局JavaScript代码,您(作为开发人员)也能够检查正确的功能并在需要时进行polyfill填充。

如果你仔细看看你的代码,以及它为什么没有达到你的期望,我希望你会发现恶意软件/工具栏/插件是没有责任的。

隔离失败并重现行为的代码。