JavaScriptでクリックカウント

リンクをクリックしたときに
JavaScriptを使ってクリック記録用のリクエストを投げる
ということをやろうとしてうまくいかなくてそれなりに何とかなったメモ。

だめだったケース

$('a').one('click', function(){
	var s = document.createElement('img');
	s.src = 'http://example.jp/clickcount.php?f='+ $(this).attr('id')
	document.getElementsByTagName("head")[0].appendChild(s);
}

↑みたいにしてたけど
これだとclickcount.phpにリクエストが出ないことが多い。
WebKit系は全滅、それ以外でも実際のリクエストの3割くらいしか取れない

よかったケース

$('a').one('click', function(){
	var s = document.createElement('iframe');
	s.setAttribute('src', '');
	s.style.display = 'none';
	document.body.appendChild(s);
	s.src = 'http://example.jp/clickcount.php?f='+ $(this).attr('id');
}
  • imgタグじゃなくてiframe
  • appendChildしてからsrc設定

とすると8,9割取れるようになった。