1

http と _gaq の両方を含むすべてのアンカー タグを選択する関数を作成しようとしています (多くのリンクにはイベント トラッキングがあるため)。次に、Google アナリティクスのクロスドメイン トラッキング リンカー メソッドを onclick イベントに追加します。

        $("a[href*='http:'][onclick*='_gaq']").each(function(){
            var href = this.href;
            var onclick = $(this).attr('onclick');
            var linker = "['_link', "+ "'"+href+"'"+"],";
            var output = [onclick.substr(0,10), linker, onclick.substr(10), " return false;"].join('');

            console.log('output : '+output);
         });

これを実行すると、次のように出力されます。

output : _gaq.push(['_link', 'http://google.com'],['_trackEvent','dude','dude','dude']); return false;

これは onclick の新しい値にしたいので、出力値で古い onclick 値を「上書き」するにはどうすればよいでしょうか?

説明するためにjsfiddleも作成しました。

ヘルプや提案に感謝します。

4

2 に答える 2

2

試す

$("a[href*='http:'][onclick*='_gaq']").each(function(e){
    var href = this.href;
    var onclick = $(this).attr('onclick');
    var linker = "['_link', "+ "'"+href+"'"+"],";
    var output = [onclick.substr(0,10), linker, onclick.substr(10), " return false;"].join('');
    $(this).attr('onclick', output);
});
于 2013-09-24T00:43:49.447 に答える
0

私はおそらくあなたが望む答えを得るこの質問を見つけました:

$("a[href*='http:'][onclick*='_gaq']").each(function(){
     var href = this.href;
     var onclick = $(this).attr('onclick');
     var linker = "['_link', "+ "'"+href+"'"+"],";
     var output = [onclick.substr(0,10), linker, onclick.substr(10), " return false;"].join('');

     $(this).attr('onclick','').unbind('click');  // Get rid of the old one
     var f = new Function(output);                // create a function
     $(this).click(f);                            // Add your new onclick
  });

編集: 26 票の賛成票を集めた最近のコメントに惑わされました。元のフォームに戻ります。

26 票 それでもうまくいかないようです!, 比較

http://jsfiddle.net/TN2wr/

http://jsfiddle.net/TN2wr/1/

于 2013-09-24T00:48:46.793 に答える