1

トラッキングピクセルが正常に実行されたかどうかを確認できるサンドボックスを作成しようとしています。

基本的に、ピクセルファイアが成功すると、外部JavaScriptファイルのリクエストが作成されます。このスクリプトが正しく実行されると、次のように作成されます。

<script async="true" type="text/javascript" src="a.adroll.com/j/roundtrip.js"></script>

それを検出するにはどうすればよいですか?何かアドバイス?

4

1 に答える 1

2

トラッキングピクセルがページに追加されて正常に読み込まれたかどうかを検出しようとしている場合は、DOMでそれを見つけて、.completeプロパティを使用して画像の読み込みが完了したかどうかを確認できます。

外部のJavaScriptが呼び出されたかどうかを検出しようとしている場合、コードが呼び出されたことを示す質問をしたり、呼び出される前に問題のコードをハッキングしたりできる状態をコードが残さない限り、直接それを行うことはできません。呼び出されたことをログに記録してから元の関数を呼び出すことができる独自の関数を使用します。

問題の詳細(実際のコードとHTML)がなければ、これ以上の詳細を提供することはできません。


コメントにもう少し情報を追加されたようです。特定のスクリプトがロードされているかどうかを知りたい場合は、そのスクリプトを調べて、スクリプトが定義しているグローバルシンボルを確認し、それらのグローバルシンボルの1つが存在するかどうかをテストできます。それらが定義されていない場合、スクリプトはまだロードされていません。それらが定義されている場合、それは持っています。

たとえば、スクリプト(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
}
于 2013-01-29T05:19:56.560 に答える