1

Google アナリティクスを介してアウトバウンドリンクを追跡しようとしていますが、Google はこれを使用することを提案しています

<script type="text/javascript">
  function recordOutboundLink(link, category, action) {
    _gat._getTrackerByName()._trackEvent(category, action);
    setTimeout('document.location = "' + link.href + '"', 100);
  }
</script>

これは問題ありませんが、私のアウトバウンドリンクは新しいタブで開く必要があり、(当然のことながら) そのために を使用しtarget="_blank"ています..

しかし、setTimeoutメソッドはそれを取り除き、同じページでリンクを開きます..

使ってみwindow.open()たけどブラウザにブロックされないか心配。

とにかく、このjs関数を実行して、クリックを少し遅らせることはできますか? (グーグルが示唆するように100ミリ秒)?

ありがとう。


SOでこのような他の 質問 を見てきましたが、新しいタブ/ウィンドウで開くことは扱っていません。

4

3 に答える 3

1

単純です。そのsetTimeout()部分を削除するだけです。つまり、_trackEvent関数を呼び出すだけです。

リンクを次のように保持する場合は、リンクでjavascript関数を実行し、新しいウィンドウを開く必要があります。

<a href="example.com" target="_blank" onclick="recordOutboundLink(foo, bar)">Click here</a>

<script type="text/javascript">
  function recordOutboundLink(category, action) {
    _gat._getTrackerByName()._trackEvent(category, action);
  }
</script>
于 2012-06-11T16:34:37.140 に答える
1

上記の答えを進化させます。これは、(独自の基準に基づいて) リンクの選択をリッスンし、それらへのコールバックのメソッドを提供できる Jquery プラグインです。

フィドル

したがって、OPの場合、セットアップは次のようになります。

<a href="http://www.google.co.uk" target="_blank" data-category="Outbound">Google</a>

$(document).ready(function() {
    $('a').trackOutBound(null,function() {
        var category= $(this).data('category');
        _gat._getTrackerByName()._trackEvent(category, $(this).attr('href'));
    });
});
于 2012-06-12T10:29:49.317 に答える
-1

これを使用して、デフォルトのブラウザーの動作を続行する前に関数を待機させます。

var wait_until = new Date().getTime() + 500;
while (new Date().getTime() < wait_until) {
    //Do nothing, wait
}
于 2016-09-02T19:55:01.090 に答える