我正在尝试创建一个沙箱,我可以在其中检查跟踪像素是否已成功执行。
基本上,成功的像素激发会创建一个外部JavaScript文件的请求。当此脚本正确运行时,它会创建以下内容:
<script async="true" type="text/javascript" src="a.adroll.com/j/roundtrip.js"></script>我该如何去检测呢?有什么建议吗?
发布于 2013-01-29 13:19:57
如果您试图检测跟踪像素是否已添加到页面并成功加载,则可以在DOM中找到它,并使用.complete属性检查图像是否已完成加载。
如果你试图检测某个外部javascript是否被调用了,你不能直接这么做,除非代码留下一些状态,你可以询问它是否已经被调用,或者在它被调用之前对有问题的代码进行黑客攻击,用你自己的函数替换它,该函数可以记录被调用的代码,然后调用原始函数。
如果没有关于你的问题的更多细节(实际代码和HTML),我们就不能提供更多细节。
我看到你在评论中添加了更多的信息。如果您想知道某个特定的脚本是否已经加载,那么您可以查看该脚本,看看它定义了哪些全局符号,并测试其中一个全局符号是否存在。如果它们未定义,则脚本尚未加载。如果它们被定义了,那么它已经被定义了。
例如,如果脚本(roundtrip.js)定义了一个名为__adroll的全局函数(看起来与该脚本类似),则可以使用以下命令测试其是否存在:
if (window.__adroll) {
// symbol __adroll is defined
}要在与主页相同的域上的iframe中测试此变量的存在,您必须获取该iframe的窗口对象。使用代码示例中的id="iframe",您可以这样做:
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
}https://stackoverflow.com/questions/14576025
复制相似问题