首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测是否发生了对外部JavaScript文件的调用?

如何检测是否发生了对外部JavaScript文件的调用?
EN

Stack Overflow用户
提问于 2013-01-29 13:07:12
回答 1查看 2.2K关注 0票数 1

我正在尝试创建一个沙箱,我可以在其中检查跟踪像素是否已成功执行。

基本上,成功的像素激发会创建一个外部JavaScript文件的请求。当此脚本正确运行时,它会创建以下内容:

代码语言:javascript
复制
<script async="true" type="text/javascript" src="a.adroll.com/j/roundtrip.js"></script>

我该如何去检测呢?有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-29 13:19:57

如果您试图检测跟踪像素是否已添加到页面并成功加载,则可以在DOM中找到它,并使用.complete属性检查图像是否已完成加载。

如果你试图检测某个外部javascript是否被调用了,你不能直接这么做,除非代码留下一些状态,你可以询问它是否已经被调用,或者在它被调用之前对有问题的代码进行黑客攻击,用你自己的函数替换它,该函数可以记录被调用的代码,然后调用原始函数。

如果没有关于你的问题的更多细节(实际代码和HTML),我们就不能提供更多细节。

我看到你在评论中添加了更多的信息。如果您想知道某个特定的脚本是否已经加载,那么您可以查看该脚本,看看它定义了哪些全局符号,并测试其中一个全局符号是否存在。如果它们未定义,则脚本尚未加载。如果它们被定义了,那么它已经被定义了。

例如,如果脚本(roundtrip.js)定义了一个名为__adroll的全局函数(看起来与该脚本类似),则可以使用以下命令测试其是否存在:

代码语言:javascript
复制
if (window.__adroll) {
    // symbol __adroll is defined
}

要在与主页相同的域上的iframe中测试此变量的存在,您必须获取该iframe的窗口对象。使用代码示例中的id="iframe",您可以这样做:

代码语言:javascript
复制
var iframe = document.getElementById("iframe_");
var iframWin = iframe.contentWindow || iframe.contentDocument;
if (iframeWin && iframeWin.__adroll) {
    // symbol __adroll is defined in the iframe
} else {
    // symbol __adroll is either not defined in the iframe or
    // the iframe window is not accessible for cross-domain security reasons
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14576025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档