2012-01-10 30 views
2

私はGoogleの分析のために旅行するクロスサイトを追跡するには、次のリンクを持っている:私はなぜこのリンクをデバッグしようとしていますが、それは動作しませんOnClickイベントにリンクして、発射/作動しない理由は何ですか?

<a href="http://example.com/test.html" 
    onclick="_gaq.push(['_link', 'http://example.com/test.html']); 
    return false;"  
    class="noFloat" 
    target="_blank"> 
    Click Me 
</a> 

を、私はそれをクリックして、新しいウィンドウが開きません。上記のコードに問題があることを確認したかったのですか、それとも私のページでこれを破っている何か他のものでしょうか?もしそうなら、私はデバッグ用のjavascriptに戻るでしょう。リンクの動作がreturn false;によって防止されている

<a href="#" onclick="Clicked();" class="noFloat" target="_blank"> 
    Click Me 
</a> 

function Clicked() 
{ 
_gaq.push(['_link', 'http://example.com/test.html']); 
window.location = "http://example.com/test.html"; 
return false; 
} 
+0

ほとんどのブラウザには、エラーがある場合はそれを教えてくれる開発者ツールがあります。 ChromeとIEではF12を押します。また、 'JScript'と' JavaScript'は異なる言語になっていますが、同様に違いはあります。 –

+0

Jscript vs Javascript tipの良い点はありがたいことです。私は探していますが、葉巻は深く潜ることはありません。ちょうど確かめたいと思ってリンクの目を確認するために目の第二のセットを得るためには、構文がうまくいきました。 jscriptとjavascriptの相違点:http://stackoverflow.com/questions/135203/whats-the-difference-between-javascript-and-jscript – Anicho

答えて

3

:何について

+0

あなたの絶対に正しいことを知っている、なぜ私はそれを見ていないのか分からない過去に同様の問題に遭遇しました。また、 '_gaq.push(['_ setDomainName'、 'example-petstore.com']);を定義する必要があることを追加する必要があります。example.petstore.comはあなたの現在のドメインでなければなりません。その定義がなければ、_.gaq.pushメソッドは失敗するか、デバッグ時に気付いたループに陥ると言うでしょう。 – Anicho

+1

onlickイベントの前にtarget = "_ blank"を定義しました。チャームのように動作し、falseを返すことができます。この_gaq.pushは、 – Anicho

+0

ロリーの答えは正しいが不完全である。 Googleアナリティクスの「_link」メソッドが何をしているのか(最初に完了したらリダイレクトを引き起こす)を理解することなく、「return false」を削除しないでください。いくつかの詳細については、私の返信を参照してください。 –

0

。いつものように、リンクが完了できるようにするには、単にそれを削除:

<a href="http://example.com/test.html" 
    onclick="_gaq.push(['_link', 'http://example.com/test.html']);"  
    class="noFloat" 
    target="_blank"> 
    Click Me 
</a> 
2

リンクはリターン偽、新しいウィンドウ(target="_blank")で開かれている場合は、使用しているクッキー情報を渡すのインライン方法は動作しません。そのaタグの機能を基本的に上書きしています。

あなたは<a> -tagのhref=""を変更する必要があります。

<a href="http://example.com/test.html" 
    id="ext-link"  
    class="noFloat" 
    target="_blank"> 
    Click Me 
</a> 

をして、次のjavascriptがあります:あなたのスクリプト場合は、デフォルトの分析は、コードブレークをリンクIを見つけた

_gaq.push(function() { 
    var pt = _gat._getTrackerByName(), 
     link = document.getElementById('ext-link'); 
    link.href = pt._getLinkerUrl(link.href); 
}); 
+0

この問題が発生し、ターゲットを指定していないdocument.location = urlという名前のOutboundLinkを追跡するために使用していたJSが認識されました。これをwindow.open(url、 '_blank')に変更した後に動作しました。 – fseminario

0

をタグは文書のヘッドにありません。

+0

は私にとって問題ではありませんでした – fseminario

0

Rory McCrossanは、 "return false"はリンクのデフォルト動作を停止するが、これは不完全な答えです。 Googleアナリティクス(GA)にプッシュされた「_link」メソッドは、処理が完了するとリダイレクトされます。 GAは完了するための時間が必要です。詳細は、http://bit.ly/1iasHQh

GAリダイレクトが失敗した理由は別の問題によるものです。 2つの理論:(1)Chromeを使用しており、「Googleアナリティクスオプトアウトアドオン」をインストールしているため、これまでにこのような状況を経験しました。 (2) "_link"メソッドは、target = "_ blank"を使用することと互換性がありません。ターゲットを使用して新しいウィンドウ/タブを開く場合は、安全に "return false;"を削除できます。 Javascriptを処理している現在のページは閉じられないため、GAがその処理を実行できるようになります。

他人を助ける希望。

0

回答を通過した後、どれも完全には働いていませんでした。

var trackOutboundLink = function(url) {  
ga('send', 'event', 'outbound', 'click', url, {'hitCallback': 
    function() { 
    window.open(url, '_blank'); 
    }  
}); 
} 

もともとJSは、ターゲットを指定しませんでした:フッター

フッターにJSを修正
var trackOutboundLink = function(url) { 
    ga('send', 'event', 'outbound', 'click', url, {'hitCallback': 
    function() { 
    document.location = url; 
    } 
    }); 
} 

<a href="http://www.google.com/" target="_blank" onclick="trackOutboundLink('http://www.google.com'); return false;" > 
Outbound Link</a> 

壊れたJS:私の場合、私はそうように構成されたリンクを持っていましたそれは同じウィンドウで開きました。 "return false"を削除すると、hrefとonclickの両方がトリガされ、2つのウィンドウが開きました。

関連する問題