2011-01-18 14 views
2

外部リンクのクリックを検出するにはどうすればよいですか?外部リンクを検出しますか?

私は簡単な質問をしていますが、簡単な回答がある場合とない場合があります。私は、私のページのユーザの何人かが外部リンク、例えば広告をクリックしたかどうかを検出する必要があります。

私は、新しいページにリダイレクトされるまでユーザーがクリックする必要があるように、特定のリンク上に透明なdivをランダムに配置することになりましたが、これはユーザーにとっては不便であり、悪用可能。

私は皆さんが私を助けてくれることを願っています。私はいつでもあなたを助けるために最善を尽くします。

私の母国語は英語ではありません。

+0

最初の質問:「外部」とはiframe内のリンクを意味しますか? 2番目の質問:あなたはそれを検出したいと何をしたいですか? –

答えて

5

、すべての外部リンクとクリックイベントのハンドラを選択明らかに、Google Analytics gaqは必要ない場合は削除することができます。

+0

ありがとう、まさに私が探していたものです。 –

+0

ありがとうございました!私はhrefを使わずにこれらのアンカーを除外するために(href === "")チェックしなければなりませんでした。 – tehsis

+0

Googleアナリティクスの場合は、次のようにする必要があります。 '' 'var trackOutboundLink = function(url){ ga( 'send'、 'event'、 'outbound'、 'click'、url、{ 'transport': 'ビーコン '、 ' hitCallback ':function(){document。location = url;} }); } jQueryの(ドキュメント).ready(関数($){ \t $ .expr [ ':']。!外部=機能(OBJ){ \t \tリターンobj.href.match(/ ^のmailto \:/ ) \t \t &&(obj.hostname = location.hostname); \t}; \t $( ':外部'!。)をクリックします(関数(){ \t \t trackOutboundLink($(この).ATTR(」 href ")); \t}); });' '' – Cassiano

1

ねえ、あなたは本当にgoogle analyticsを使う必要があります。 それをしたくない場合は、これをチェックしてください。 Logging hyperlink clicks on my website

+0

http://www.google.com/analytics/これはリンクのクリックだけでなく、いくつかのstuffs.Andを記録するためのかなりきちんとしたツールです。あなたが本当に必要とするのは、それぞれの末尾に数行のコードを追加するだけですhtmlページを表示します。 – Neeraj

-2

あなたはあなたがそのような何かができるリンクに余分なクラスを追加することができた場合:

<a href="http://www.externalsite.com/" class="external">AD</a> 

すなわち、すべてのリンクに「外部」クラスを追加し、このようにjQueryを使用します。

デフォルトの操作(ユーザーのリダイレクト)を防ぎ、何か他の操作を行う場合は、event.preventDefault()を使用することもできます。

EDIT あなたは=「外部」直接マークアップにクラスを追加することができない場合のように、あなたはdinamycallyいくつかのコードを使用してjQueryのを使用して、それを追加することができます。私はこの第二をテストしていませんでした

$('a').each(function() { 
    if($(this).attr('href') is an external link) { 
     $(this).addClass('external'); 
    } 
}); 

スニペットが動作するはずです。

jQuery(document).ready(function($) { 
    $('body').on('click', 'a[href^="http"]:not([href*="//' + location.host + '"])', function(){ 
     if (typeof(_gaq) !== 'undefined') { 
      _gaq.push(['_trackEvent', 'outbound', 'click', this.href.match(/\/\/([^\/]+)/)[1]]); 
      _gaq.push(['t2._trackEvent', 'outbound', 'click', this.href.match(/\/\/([^\/]+)/)[1]]); 
     } 
    }); 
}); 

 
// Creating custom :external selector 
$.expr[':'].external = function(obj){ 
    return !obj.href.match(/^mailto\:/) 
      && (obj.hostname != location.hostname); 
}; 

// Manage clicks on external links 
$('a:external').click(function() { 
    // do your stuff here, ie send the link href to some server-side script 
    $.ajax({ type: "POST", url: "some.php", data: "href="+$(this).attr("href") }); 
}); 
+0

downvoteについてご意見ください。 –

0

あなたは以下のようにして、現在のサイトに属していないアウトバウンドクリックを追跡することができますjQueryを使って

関連する問題